ChimeraTK-DeviceAccess
03.18.00
|
Send backend-specific asynchronous data to different distributors: More...
#include <MuxedInterruptDistributor.h>
Public Member Functions | |
SubDomain (boost::shared_ptr< DeviceBackend > backend, std::vector< size_t > qualifiedAsyncId, boost::shared_ptr< MuxedInterruptDistributor > parent, boost::shared_ptr< Domain > domain) | |
void | activate (BackendSpecificDataType, VersionNumber v) |
void | distribute (BackendSpecificDataType, VersionNumber v) |
void | sendException (const std::exception_ptr &e) |
template<typename DistributorType > | |
boost::shared_ptr< AsyncAccessorManager > | getAccessorManager (std::vector< size_t > const &qualifiedSubDomainId) |
Get an AsyncAccessorManager for a specific SubDomain. More... | |
boost::shared_ptr< Domain > | getDomain () |
std::vector< size_t > | getId () |
boost::shared_ptr< DeviceBackend > | getBackend () |
template<typename UserType > | |
boost::shared_ptr< AsyncNDRegisterAccessor< UserType > > | subscribe (RegisterPath name, size_t numberOfWords, size_t wordOffsetInRegister, AccessModeFlags flags) |
Protected Attributes | |
std::vector< size_t > | _id |
boost::shared_ptr< DeviceBackend > | _backend |
boost::weak_ptr< MuxedInterruptDistributor > | _muxedInterruptDistributor |
boost::weak_ptr< TriggeredPollDistributor > | _pollDistributor |
boost::weak_ptr< VariableDistributor< std::nullptr_t > > | _variableDistributor |
boost::shared_ptr< MuxedInterruptDistributor > | _parent |
boost::shared_ptr< Domain > | _domain |
Friends | |
template<typename UserType , typename BackendDataType > | |
class | detail::SubDomainSubscriptionImplementor |
Send backend-specific asynchronous data to different distributors:
Definition at line 23 of file MuxedInterruptDistributor.h.
ChimeraTK::async::SubDomain< BackendSpecificDataType >::SubDomain | ( | boost::shared_ptr< DeviceBackend > | backend, |
std::vector< size_t > | qualifiedAsyncId, | ||
boost::shared_ptr< MuxedInterruptDistributor > | parent, | ||
boost::shared_ptr< Domain > | domain | ||
) |
Definition at line 93 of file SubDomain.h.
void ChimeraTK::async::SubDomain< BackendSpecificDataType >::activate | ( | BackendSpecificDataType | data, |
VersionNumber | v | ||
) |
void ChimeraTK::async::SubDomain< BackendSpecificDataType >::distribute | ( | BackendSpecificDataType | data, |
VersionNumber | v | ||
) |
Definition at line 187 of file SubDomain.h.
boost::shared_ptr< AsyncAccessorManager > ChimeraTK::async::SubDomain< BackendSpecificDataType >::getAccessorManager | ( | std::vector< size_t > const & | qualifiedSubDomainId | ) |
Get an AsyncAccessorManager for a specific SubDomain.
The qualified SubDomain ID is relative to (and including) this SubDomain. If the ID has a length 1, it will return the AsyncAccessorManager for the matching DistributorType (TriggeredPollDistributor or VariableDistributor<BackendSpecificDataType>). If the ID is longer, it will get the distributor from the matching SubDomain further down the hierarchy. The Distributor and intermediate MuxedInterruptDistributors/SubDomains are created if they are not there.
Definition at line 111 of file SubDomain.h.
|
inline |
Definition at line 54 of file SubDomain.h.
|
inline |
Definition at line 52 of file SubDomain.h.
|
inline |
void ChimeraTK::async::SubDomain< BackendSpecificDataType >::sendException | ( | const std::exception_ptr & | e | ) |
Definition at line 226 of file SubDomain.h.
boost::shared_ptr< AsyncNDRegisterAccessor< UserType > > ChimeraTK::async::SubDomain< BackendSpecificDataType >::subscribe | ( | RegisterPath | name, |
size_t | numberOfWords, | ||
size_t | wordOffsetInRegister, | ||
AccessModeFlags | flags | ||
) |
|
friend |
Definition at line 71 of file SubDomain.h.
|
protected |
Definition at line 63 of file SubDomain.h.
|
protected |
Definition at line 68 of file SubDomain.h.
|
protected |
Definition at line 61 of file SubDomain.h.
|
protected |
Definition at line 64 of file SubDomain.h.
|
protected |
Definition at line 67 of file SubDomain.h.
|
protected |
Definition at line 65 of file SubDomain.h.
|
protected |
Definition at line 66 of file SubDomain.h.