21template<
class U,
class T>
115template<
class U,
class T>
virtual Bool_t PublishInternalValues() const =0
The functions below should be specified in the fully derived classes.
MQwPublishable_child(const MQwPublishable_child &source)
Copy constructor.
Bool_t RequestExternalValue(const TString &name, VQwHardwareChannel *value) const
Retrieve the variable name from other subsystem arrays Get the value corresponding to some variable n...
Bool_t PublishInternalValue(const TString name, const TString desc, const VQwHardwareChannel *element) const
Publish a variable from this child into the parent container.
virtual ~MQwPublishable_child()
Virtual destructor.
U * GetParent() const
Get the parent container for this child object.
const VQwHardwareChannel * RequestExternalPointer(const TString &name) const
Retrieve a pointer to an external variable by name Requests a direct pointer to a variable from sibli...
virtual Bool_t PublishByRequest(TString device_name)=0
Try to publish an internal variable matching the submitted name Called when another subsystem request...
MQwPublishable_child()
Default constructor Initializes the child object and sets up self-reference for publishing.
void SetParent(U *parent)
Set the parent container for this child object.
MQwPublishable(const MQwPublishable &source)
Copy constructor Creates a new container with cleared publishing maps (variables are not copied).
Bool_t PublishInternalValue(const TString name, const TString desc, const T *subsys, const VQwHardwareChannel *element)
Publish an internal variable from a subsystem Registers a variable from one of the contained subsyste...
virtual Bool_t PublishByRequest(TString device_name)
Try to publish an internal variable on demand Called internally when a variable is requested but not ...
void ListPublishedValues() const
List all published variables with descriptions Prints a summary of all currently published variables ...
virtual ~MQwPublishable()
Virtual destructor.
std::map< TString, const T * > fPublishedValuesSubsystem
MQwPublishable()
Default constructor Initializes empty variable publishing maps.
std::map< TString, const VQwHardwareChannel * > fPublishedValuesDataElement
Published values.
Bool_t RequestExternalValue(const TString &name, VQwHardwareChannel *value) const
Retrieve a variable value from external sources by copying Searches for the named variable in externa...
std::map< TString, TString > fPublishedValuesDescription
std::vector< std::vector< TString > > fPublishList
const VQwHardwareChannel * RequestExternalPointer(const TString &name) const
Retrieve a direct pointer to an external variable Searches for the named variable in external subsyst...
virtual const VQwHardwareChannel * ReturnInternalValue(const TString &name) const
Retrieve an internal variable by name (pointer version) Searches for the named variable among publish...
Abstract base for concrete hardware channels implementing dual-operator pattern.