Cpp Utilities 1.2.3
|
Proxy class for operator* in SafeSharedPtr, behave like underlying object, and provide RAII read-write lock for thread safety. More...
#include <SafeSharedPtr.hpp>
Public Types | |
using | reference = T & |
Reference type of element. More... | |
using | const_reference = const T & |
Const eference type of element. More... | |
Public Member Functions | |
RefHelper (const SafeSharedPtr &p) | |
Constructor a constant RefHelper to gain access to underlying object of SafeSharedPtr. More... | |
RefHelper (RefHelper &&other) noexcept | |
Move constructor, transport ownership to another RefHelper, keep existing lock state. More... | |
~RefHelper () | |
Destructor, release Lock if exists. More... | |
RefHelper & | operator= (RefHelper &&other) |
Move assigment, transport ownership to another RefHelper, keep existing lock state. More... | |
operator reference () | |
Operator overload to act as T& . More... | |
operator const_reference () const | |
Operator overload to act as const T& . More... | |
template<typename X > | |
RefHelper & | operator= (const X &other) |
Assign operator to assign from another value. More... | |
Proxy class for operator* in SafeSharedPtr, behave like underlying object, and provide RAII read-write lock for thread safety.
Lock | Lock type used for protect the object. |
std::move
with move constructor and move assignment to transport it's ownership, or simply use it like type T* or T&.*pPoint.x
cannot compile, use pPoint->x
instead. Sorry for that. using Memory::SafeSharedPtr< T, mutex_t, read_lock_t, write_lock_t >::RefHelper< Lock >::reference = T& |
Reference type of element.
using Memory::SafeSharedPtr< T, mutex_t, read_lock_t, write_lock_t >::RefHelper< Lock >::const_reference = const T& |
Const eference type of element.
|
inlineexplicit |
Constructor a constant RefHelper to gain access to underlying object of SafeSharedPtr.
Will construct Lock object to guard the pointer.
p | SafeSharedPtr to access from. |
|
inlinenoexcept |
|
inline |
Destructor, release Lock if exists.
|
inline |
|
inline |
Operator overload to act as T&
.
T&
.
|
inline |
Operator overload to act as const T&
.
const T&
.
|
inline |
Assign operator to assign from another value.
X | Type of input, X& must be implicitly convertible to T& . |
other | Input value to be assigned from. |
Used for situations like: