ChimeraTK-DeviceAccess-DoocsBackend 01.11.02
Loading...
Searching...
No Matches
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.
 
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
 
void initialise (const DoocsBackendRegisterInfo &info)
 Perform initialisation (i.e.
 

Protected Attributes

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

Additional Inherited Members

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

Detailed Description

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

Definition at line 74 of file DoocsBackendRegisterAccessor.h.

Constructor & Destructor Documentation

◆ ~DoocsBackendRegisterAccessor()

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

Definition at line 354 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 311 of file DoocsBackendRegisterAccessor.h.

Member Function Documentation

◆ doPostRead()

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

Definition at line 107 of file DoocsBackendRegisterAccessor.h.

◆ doPreRead()

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

Definition at line 97 of file DoocsBackendRegisterAccessor.h.

◆ doPreWrite()

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

Definition at line 102 of file DoocsBackendRegisterAccessor.h.

◆ doReadTransferSynchronously()

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

Definition at line 361 of file DoocsBackendRegisterAccessor.h.

◆ doWriteTransfer()

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

Definition at line 92 of file DoocsBackendRegisterAccessor.h.

◆ getHardwareAccessingElements()

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

Definition at line 182 of file DoocsBackendRegisterAccessor.h.

◆ getInternalElements()

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

Definition at line 186 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 222 of file DoocsBackendRegisterAccessor.h.

◆ interrupt()

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

Definition at line 190 of file DoocsBackendRegisterAccessor.h.

◆ isReadable()

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

Definition at line 166 of file DoocsBackendRegisterAccessor.h.

◆ 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.

◆ 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 188 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 83 of file DoocsBackendRegisterAccessor.h.

◆ write_internal()

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

internal write from doocs::EqData src

Definition at line 384 of file DoocsBackendRegisterAccessor.h.

Member Data Documentation

◆ _isReadable

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

Definition at line 211 of file DoocsBackendRegisterAccessor.h.

◆ _isWriteable

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

Definition at line 212 of file DoocsBackendRegisterAccessor.h.


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