ChimeraTK-DeviceAccess-DoocsBackend  01.09.02
ChimeraTK::DoocsBackendRegisterAccessor< UserType > Class Template Reference

#include <DoocsBackendRegisterAccessor.h>

+ Inheritance diagram for ChimeraTK::DoocsBackendRegisterAccessor< UserType >:
+ Collaboration diagram for ChimeraTK::DoocsBackendRegisterAccessor< UserType >:

Public Member Functions

 ~DoocsBackendRegisterAccessor () override
 
void shutdown ()
 All implementations must call this function in their destructor. More...
 
void doReadTransferSynchronously () override
 
bool doWriteTransfer (VersionNumber) override
 
void doPreRead (TransferType) override
 
void doPreWrite (TransferType, VersionNumber) override
 
void doPostRead (TransferType, bool hasNewData) override
 
bool isReadOnly () const override
 
bool isReadable () const override
 
bool isWriteable () const override
 
bool mayReplaceOther (const boost::shared_ptr< TransferElement const > &other) const override
 
std::vector< boost::shared_ptr< TransferElement > > getHardwareAccessingElements () override
 
std::list< boost::shared_ptr< ChimeraTK::TransferElement > > getInternalElements () override
 
void replaceTransferElement (boost::shared_ptr< TransferElement >) override
 
void interrupt () override
 

Protected Member Functions

 DoocsBackendRegisterAccessor (boost::shared_ptr< DoocsBackend > backend, const std::string &path, const std::string &registerPathName, size_t numberOfWords, size_t wordOffsetInRegister, AccessModeFlags flags)
 
void write_internal ()
 internal write from doocs::EqData src More...
 
void initialise (const DoocsBackendRegisterInfo &info)
 Perform initialisation (i.e. More...
 

Protected Attributes

bool _isReadable
 
bool _isWriteable
 
- Protected Attributes inherited from ChimeraTK::DoocsBackendRegisterAccessorBase
doocs::EventId _lastEventId
 first valid eventId More...
 

Additional Inherited Members

- Public Attributes inherited from ChimeraTK::DoocsBackendRegisterAccessorBase
std::string _path
 register path More...
 
doocs::EqAdr ea
 DOOCS address structure. More...
 
doocs::EqCall eq
 DOOCS rpc call object. More...
 
doocs::EqData src
 DOOCS data structures. More...
 
doocs::EqData dst
 
bool isArray {false}
 flag if the DOOCS data type is an array or not More...
 
size_t nElements {0}
 number of elements More...
 
size_t elementOffset {0}
 element offset specified by the user More...
 
bool isPartial {false}
 flag if the accessor should affect only a part of the property (in case of an array) More...
 
bool useZMQ {false}
 flag if a ZeroMQ subscribtion is used for reading data (c.f. AccessMode::wait_for_new_data) More...
 
bool isActiveZMQ {false}
 flag whether it should receive updates from the ZeroMQ subscription. More...
 
cppext::future_queue< doocs::EqData > notifications
 future_queue used to notify the TransferFuture about completed transfers More...
 
bool shutdownCalled {false}
 Flag whether shutdown() has been called or not. More...
 
boost::shared_ptr< DoocsBackend_backend
 Pointer to the backend. More...
 

Detailed Description

template<typename UserType>
class ChimeraTK::DoocsBackendRegisterAccessor< UserType >

Definition at line 75 of file DoocsBackendRegisterAccessor.h.

Constructor & Destructor Documentation

◆ ~DoocsBackendRegisterAccessor()

template<typename UserType >
ChimeraTK::DoocsBackendRegisterAccessor< UserType >::~DoocsBackendRegisterAccessor
override

Definition at line 349 of file DoocsBackendRegisterAccessor.h.

◆ DoocsBackendRegisterAccessor()

template<typename UserType >
ChimeraTK::DoocsBackendRegisterAccessor< UserType >::DoocsBackendRegisterAccessor ( boost::shared_ptr< DoocsBackend backend,
const std::string &  path,
const std::string &  registerPathName,
size_t  numberOfWords,
size_t  wordOffsetInRegister,
AccessModeFlags  flags 
)
protected

Definition at line 306 of file DoocsBackendRegisterAccessor.h.

Member Function Documentation

◆ doPostRead()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::doPostRead ( TransferType  ,
bool  hasNewData 
)
inlineoverride

Definition at line 108 of file DoocsBackendRegisterAccessor.h.

+ Here is the caller graph for this function:

◆ doPreRead()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::doPreRead ( TransferType  )
inlineoverride

Definition at line 98 of file DoocsBackendRegisterAccessor.h.

◆ doPreWrite()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::doPreWrite ( TransferType  ,
VersionNumber   
)
inlineoverride

Definition at line 103 of file DoocsBackendRegisterAccessor.h.

+ Here is the caller graph for this function:

◆ doReadTransferSynchronously()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::doReadTransferSynchronously
override

Definition at line 356 of file DoocsBackendRegisterAccessor.h.

+ Here is the caller graph for this function:

◆ doWriteTransfer()

template<typename UserType >
bool ChimeraTK::DoocsBackendRegisterAccessor< UserType >::doWriteTransfer ( VersionNumber  )
inlineoverride

Definition at line 93 of file DoocsBackendRegisterAccessor.h.

◆ getHardwareAccessingElements()

template<typename UserType >
std::vector<boost::shared_ptr<TransferElement> > ChimeraTK::DoocsBackendRegisterAccessor< UserType >::getHardwareAccessingElements ( )
inlineoverride

Definition at line 181 of file DoocsBackendRegisterAccessor.h.

◆ getInternalElements()

template<typename UserType >
std::list<boost::shared_ptr<ChimeraTK::TransferElement> > ChimeraTK::DoocsBackendRegisterAccessor< UserType >::getInternalElements ( )
inlineoverride

Definition at line 185 of file DoocsBackendRegisterAccessor.h.

◆ initialise()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::initialise ( const DoocsBackendRegisterInfo info)
protected

Perform initialisation (i.e.

Implementations below this point

connect to server etc.).

Note: must only throw ChimeraTK::logic_error. Just do not proceed with the initialisation if a runtime_error is to be thrown - this will then be done in the transfer.

Definition at line 217 of file DoocsBackendRegisterAccessor.h.

◆ interrupt()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::interrupt ( )
inlineoverride

Definition at line 189 of file DoocsBackendRegisterAccessor.h.

◆ isReadable()

template<typename UserType >
bool ChimeraTK::DoocsBackendRegisterAccessor< UserType >::isReadable ( ) const
inlineoverride

Definition at line 166 of file DoocsBackendRegisterAccessor.h.

+ Here is the caller graph for this function:

◆ isReadOnly()

template<typename UserType >
bool ChimeraTK::DoocsBackendRegisterAccessor< UserType >::isReadOnly ( ) const
inlineoverride

Definition at line 164 of file DoocsBackendRegisterAccessor.h.

◆ isWriteable()

template<typename UserType >
bool ChimeraTK::DoocsBackendRegisterAccessor< UserType >::isWriteable ( ) const
inlineoverride

Definition at line 168 of file DoocsBackendRegisterAccessor.h.

+ Here is the caller graph for this function:

◆ mayReplaceOther()

template<typename UserType >
bool ChimeraTK::DoocsBackendRegisterAccessor< UserType >::mayReplaceOther ( const boost::shared_ptr< TransferElement const > &  other) const
inlineoverride

Definition at line 172 of file DoocsBackendRegisterAccessor.h.

◆ replaceTransferElement()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::replaceTransferElement ( boost::shared_ptr< TransferElement >  )
inlineoverride

Definition at line 187 of file DoocsBackendRegisterAccessor.h.

◆ shutdown()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::shutdown ( )
inline

All implementations must call this function in their destructor.

Also, implementations must call it in their constructors before throwing an exception.

Definition at line 84 of file DoocsBackendRegisterAccessor.h.

+ Here is the caller graph for this function:

◆ write_internal()

template<typename UserType >
void ChimeraTK::DoocsBackendRegisterAccessor< UserType >::write_internal
protected

internal write from doocs::EqData src

Definition at line 379 of file DoocsBackendRegisterAccessor.h.

+ Here is the caller graph for this function:

Member Data Documentation

◆ _isReadable

template<typename UserType >
bool ChimeraTK::DoocsBackendRegisterAccessor< UserType >::_isReadable
protected

Definition at line 206 of file DoocsBackendRegisterAccessor.h.

◆ _isWriteable

template<typename UserType >
bool ChimeraTK::DoocsBackendRegisterAccessor< UserType >::_isWriteable
protected

Definition at line 207 of file DoocsBackendRegisterAccessor.h.


The documentation for this class was generated from the following file: