|
constexpr | RealtimeBoxBase (const T &init=T{}) |
|
constexpr | RealtimeBoxBase (const T &&init) |
|
constexpr | RealtimeBoxBase (const RealtimeBoxBase &o) |
|
constexpr RealtimeBoxBase & | operator= (const RealtimeBoxBase &o) |
|
constexpr | RealtimeBoxBase (RealtimeBoxBase &&o) |
|
template<typename U = T> |
constexpr | RealtimeBoxBase (const std::initializer_list< U > &init, std::enable_if_t< std::is_constructible_v< U, std::initializer_list< U >>>) |
|
constexpr RealtimeBoxBase & | operator= (RealtimeBoxBase &&o) |
|
template<typename U = T> |
std::enable_if_t<!is_ptr_or_smart_ptr< U >, bool > | try_set (const T &value) |
| set a new content with best effort More...
|
|
bool | try_set (const std::function< void(T &)> &func) |
| access the content readable with best effort More...
|
|
template<typename U = T> |
std::enable_if_t<!is_ptr_or_smart_ptr< U >, bool > | trySet (const T &value) |
| set a new content with best effort More...
|
|
template<typename U = T> |
bool | trySet (const std::function< void(T &)> &func) |
| access the content readable with best effort More...
|
|
template<typename U = T> |
std::enable_if_t<!is_ptr_or_smart_ptr< U >, std::optional< U > > | try_get () const |
| get the content with best effort More...
|
|
bool | try_get (const std::function< void(const T &)> &func) |
| access the content (r) with best effort More...
|
|
template<typename U = T> |
std::enable_if_t<!is_ptr_or_smart_ptr< U >, std::optional< U > > | tryGet () const |
| get the content with best effort More...
|
|
template<typename U = T> |
bool | tryGet (const std::function< void(const T &)> &func) |
| access the content (r) with best effort More...
|
|
template<typename U = T> |
std::enable_if_t<!is_ptr_or_smart_ptr< U >, void > | set (const T &value) |
| Wait until the mutex can be locked and set the content (RealtimeBox behavior) More...
|
|
template<typename U = T> |
std::enable_if_t< is_ptr_or_smart_ptr< U >, void > | set (const T &value) |
| Wait until the mutex can be locked and set the content (RealtimeBox behavior) More...
|
|
void | set (const std::function< void(T &)> &func) |
| wait until the mutex could be locked and access the content (rw)
|
|
template<typename U = T> |
std::enable_if_t<!is_ptr_or_smart_ptr< U >, U > | get () const |
| Wait until the mutex could be locked and get the content (RealtimeBox behaviour) More...
|
|
template<typename U = T> |
std::enable_if_t<!is_ptr_or_smart_ptr< U >, void > | get (T &in) const |
| Wait until the mutex could be locked and get the content (r) More...
|
|
template<typename U = T> |
std::enable_if_t< is_ptr_or_smart_ptr< U >, void > | get (T &in) const |
| Wait until the mutex could be locked and get the content (r) More...
|
|
void | get (const std::function< void(const T &)> &func) |
| Wait until the mutex could be locked and access the content (r) More...
|
|
template<typename U = T> |
std::enable_if_t<!is_ptr_or_smart_ptr< U >, void > | operator= (const T &value) |
| provide a custom assignment operator for easier usage More...
|
|
template<typename U = T, typename = typename std::enable_if_t<!is_ptr_or_smart_ptr<U>>> |
| operator T () const |
| provide a custom conversion operator More...
|
|
template<typename U = T, typename = typename std::enable_if_t<!is_ptr_or_smart_ptr<U>>> |
| operator std::optional< T > () const |
| provide a custom conversion operator More...
|
|
const mutex_t & | get_mutex () const |
|
mutex_t & | get_mutex () |
|
mutex_t & | getMutex () |
|
const mutex_t & | getMutex () const |
|
template<class T, typename mutex_type = std::mutex>
class realtime_tools::RealtimeBoxBase< T, mutex_type >
A Box that ensures thread safe access to the boxed contents. Access is best effort. If it can not lock it will return.
NOTE about pointers: You can use pointers with this box but the access will be different. Only use the get/set methods that take function pointer for accessing the internal value.