![]() |
ChimeraTK-DeviceAccess 03.25.00
|
The Domain is the thread-safe entry point for each distribution tree. More...
#include <Domain.h>
Inheritance diagram for ChimeraTK::async::Domain:
Collaboration diagram for ChimeraTK::async::Domain:Public Member Functions | |
| virtual void | sendException (const std::exception_ptr &e) noexcept=0 |
| virtual void | deactivate ()=0 |
| virtual | ~Domain ()=default |
| std::lock_guard< std::mutex > | getDomainLock () |
Protected Member Functions | |
| bool | unsafeGetIsActive () const |
| Friend classes are allowed to read the _isActiveFlag without acquiring the mutex. | |
Protected Attributes | |
| std::mutex | _mutex |
| bool | _isActive {false} |
Friends | |
| class | AsyncAccessorManager |
| class | TriggeredPollDistributor |
| template<typename BackendSpecificDataType > | |
| class | SubDomain |
| class | MuxedInterruptDistributor |
| template<typename SourceType > | |
| class | SourceTypedAsyncAccessorManager |
| template<typename UserType > | |
| class | AsyncNDRegisterAccessor |
The Domain is the thread-safe entry point for each distribution tree.
Distributing data to accessors, sending exceptions and subscription of new accessors will all happen from different threads. This class implements a central mutex such that only one operation on the distribution three is executed at the same time.
This base class is providing the mutex and the _isActive flag, which is needed throughout the distribution tree. It also has a virtual setException() function to a allow sending exception from code that does not know about the backend-specific data type.
All other functions depend on a backend-specific data type, the according SubDomain and distributors, and are implemented in the templated DomainImpl.
|
virtualdefault |
|
pure virtual |
Implemented in ChimeraTK::async::DomainImpl< BackendDataType >.
|
inline |
|
pure virtualnoexcept |
Implemented in ChimeraTK::async::DomainImpl< BackendDataType >.
|
inlineprotected |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |