DynExp
Highly flexible laboratory automation for dynamically changing experiments.
|
Allow exclusive access to some of Object's
private methods to any LinkedObjectWrapper<T>.
More...
Private Member Functions | |
constexpr | LinkedObjectWrapperOnlyType (Object &Parent) noexcept |
Construcs an instance - one for each Object instance. More... | |
(De)Registering @p Object's making use of this @p Object instance | |
Logical const-ness: users are allowed to make use of const Objects. So, registering and deregistering them to const objects must be allowed | |
void | RegisterUser (const Object &User, const std::chrono::milliseconds Timeout) const |
Registers a user in a thread-safe way. More... | |
void | DeregisterUser (const Object &User, const std::chrono::milliseconds Timeout) const |
Deregisters a user in a thread-safe way. More... | |
Private Attributes | |
Object & | Parent |
Owning Object instance. More... | |
Friends | |
class | Object |
template<typename > | |
class | LinkedObjectWrapper |
Allow exclusive access to some of Object's
private methods to any LinkedObjectWrapper<T>.
|
inlineconstexprprivatenoexcept |
|
private |
Deregisters a user in a thread-safe way.
User | Instance of class Object to be deregistered as a user. |
Timeout | Timeout of the mutex-locking operation. |
Definition at line 398 of file Object.cpp.
|
private |
Registers a user in a thread-safe way.
User | Instance of class Object to be registered as a user. |
Timeout | Timeout of the mutex-locking operation. |
Util::InvalidStateException | is thrown if Parent is not ready. Refer to Object::IsReady(). |
Util::NotAvailableException | is thrown if shared usage for Parent is not enabled and if Parent is not unused. Refer to ParamsBase::UsageType. |
Definition at line 375 of file Object.cpp.
|
friend |
|
private |