ChimeraTK-DeviceAccess-DoocsBackend 01.12.01
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 73 of file DoocsBackendRegisterAccessor.h.

Constructor & Destructor Documentation

◆ ~DoocsBackendRegisterAccessor()

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

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

Member Function Documentation

◆ doPostRead()

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

Definition at line 106 of file DoocsBackendRegisterAccessor.h.

◆ doPreRead()

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

Definition at line 96 of file DoocsBackendRegisterAccessor.h.

◆ doPreWrite()

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

Definition at line 101 of file DoocsBackendRegisterAccessor.h.

◆ doReadTransferSynchronously()

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

Definition at line 360 of file DoocsBackendRegisterAccessor.h.

◆ doWriteTransfer()

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

Definition at line 91 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 221 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 165 of file DoocsBackendRegisterAccessor.h.

◆ isReadOnly()

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

Definition at line 163 of file DoocsBackendRegisterAccessor.h.

◆ isWriteable()

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

Definition at line 167 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 171 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 82 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 383 of file DoocsBackendRegisterAccessor.h.

Member Data Documentation

◆ _isReadable

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

Definition at line 210 of file DoocsBackendRegisterAccessor.h.

◆ _isWriteable

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

Definition at line 211 of file DoocsBackendRegisterAccessor.h.


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