JAPAn
Just Another Parity Analyzer
|
Mix-in for container classes that manage variable publishing. More...
#include <MQwPublishable.h>
Public Member Functions | |
MQwPublishable () | |
Default constructor Initializes empty variable publishing maps. | |
MQwPublishable (const MQwPublishable &source) | |
Copy constructor Creates a new container with cleared publishing maps (variables are not copied). | |
virtual | ~MQwPublishable () |
Virtual destructor. | |
Bool_t | RequestExternalValue (const TString &name, VQwHardwareChannel *value) const |
Retrieve a variable value from external sources by copying Searches for the named variable in external subsystem arrays and copies its value into the provided data element. | |
const VQwHardwareChannel * | RequestExternalPointer (const TString &name) const |
Retrieve a direct pointer to an external variable Searches for the named variable in external subsystem arrays and returns a direct pointer to the data element. | |
virtual const VQwHardwareChannel * | ReturnInternalValue (const TString &name) const |
Retrieve an internal variable by name (pointer version) Searches for the named variable among published internal variables and returns a direct pointer to the data element. | |
Bool_t | ReturnInternalValue (const TString &name, VQwHardwareChannel *value) const |
Retrieve an internal variable by name (copy version) Searches for the named variable among published internal variables and copies its value into the provided data element. | |
void | ListPublishedValues () const |
List all published variables with descriptions Prints a summary of all currently published variables and their descriptions to the logging output for debugging and inspection purposes. | |
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 subsystems in the publishing framework, making it available for external access by name. | |
Data Fields | |
std::vector< std::vector< TString > > | fPublishList |
Private Member Functions | |
virtual Bool_t | PublishByRequest (TString device_name) |
Try to publish an internal variable on demand Called internally when a variable is requested but not yet published. Iterates through contained subsystems to find and publish the requested variable. | |
Private Attributes | |
std::map< TString, const VQwHardwareChannel * > | fPublishedValuesDataElement |
Published values. | |
std::map< TString, const T * > | fPublishedValuesSubsystem |
std::map< TString, TString > | fPublishedValuesDescription |
Mix-in for container classes that manage variable publishing.
Provides the container-side logic for the variable publishing system, including registering published variables, handling external requests, and maintaining mappings between variable names and data elements.
Definition at line 116 of file MQwPublishable.h.
|
inline |
Default constructor Initializes empty variable publishing maps.
Definition at line 124 of file MQwPublishable.h.
Referenced by MQwPublishable(), and ReturnInternalValue().
|
inline |
Copy constructor Creates a new container with cleared publishing maps (variables are not copied).
source | Source object to copy from (maps are cleared, not copied) |
Definition at line 131 of file MQwPublishable.h.
References fPublishedValuesDataElement, fPublishedValuesDescription, fPublishedValuesSubsystem, and MQwPublishable().
|
inlinevirtual |
void MQwPublishable< U, T >::ListPublishedValues | ( | ) | const |
List all published variables with descriptions Prints a summary of all currently published variables and their descriptions to the logging output for debugging and inspection purposes.
Definition at line 141 of file MQwPublishable.cc.
References QwLog::endl(), fPublishedValuesDescription, and QwOut.
Referenced by main(), PublishByRequest(), and PublishInternalValue().
|
privatevirtual |
Try to publish an internal variable on demand Called internally when a variable is requested but not yet published. Iterates through contained subsystems to find and publish the requested variable.
device_name | Name of the variable being requested |
Definition at line 111 of file MQwPublishable.cc.
References QwLog::endl(), fPublishedValuesSubsystem, ListPublishedValues(), and QwDebug.
Referenced by ReturnInternalValue().
Bool_t MQwPublishable< U, 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 subsystems in the publishing framework, making it available for external access by name.
name | Unique name/key for the variable |
desc | Human-readable description of the variable |
subsys | Pointer to the subsystem that owns this variable |
element | Pointer to the data element representing this variable |
Definition at line 92 of file MQwPublishable.cc.
References QwLog::endl(), fPublishedValuesDataElement, fPublishedValuesDescription, fPublishedValuesSubsystem, ListPublishedValues(), and QwError.
const VQwHardwareChannel * MQwPublishable< U, T >::RequestExternalPointer | ( | const TString & | name | ) | const |
Retrieve a direct pointer to an external variable Searches for the named variable in external subsystem arrays and returns a direct pointer to the data element.
name | Name of the variable to retrieve |
Definition at line 24 of file MQwPublishable.cc.
References ReturnInternalValue().
Referenced by LRBCorrector::ConnectChannels(), QwCombiner::ConnectChannels(), QwCorrelator::ConnectChannels(), and VQwDataHandler::ConnectChannels().
Bool_t MQwPublishable< U, T >::RequestExternalValue | ( | const TString & | name, |
VQwHardwareChannel * | value ) const |
Retrieve a variable value from external sources by copying Searches for the named variable in external subsystem arrays and copies its value into the provided data element.
name | Name of the variable to retrieve |
value | Pointer to data element that will receive the variable's value |
Definition at line 16 of file MQwPublishable.cc.
References ReturnInternalValue().
Referenced by QwBlinder::Update().
|
virtual |
Retrieve an internal variable by name (pointer version) Searches for the named variable among published internal variables and returns a direct pointer to the data element.
name | Name of the variable to retrieve |
Definition at line 34 of file MQwPublishable.cc.
References QwLog::endl(), fPublishedValuesDataElement, MQwPublishable(), PublishByRequest(), QwDebug, and QwError.
Referenced by QwAlarmHandler::ConnectChannels(), RequestExternalPointer(), and RequestExternalValue().
Bool_t MQwPublishable< U, T >::ReturnInternalValue | ( | const TString & | name, |
VQwHardwareChannel * | value ) const |
Retrieve an internal variable by name (copy version) Searches for the named variable among published internal variables and copies its value into the provided data element.
name | Name of the variable to retrieve |
value | Pointer to data element that will receive the variable's value |
Definition at line 68 of file MQwPublishable.cc.
|
private |
Published values.
Definition at line 215 of file MQwPublishable.h.
Referenced by MQwPublishable(), PublishInternalValue(), and ReturnInternalValue().
|
private |
Definition at line 217 of file MQwPublishable.h.
Referenced by ListPublishedValues(), MQwPublishable(), and PublishInternalValue().
|
private |
Definition at line 216 of file MQwPublishable.h.
Referenced by MQwPublishable(), PublishByRequest(), and PublishInternalValue().
std::vector<std::vector<TString> > MQwPublishable< U, T >::fPublishList |
Definition at line 141 of file MQwPublishable.h.