ChimeraTK-ApplicationCore  04.01.00
ArrayVariableGroupTestApp Struct Reference
+ Inheritance diagram for ArrayVariableGroupTestApp:
+ Collaboration diagram for ArrayVariableGroupTestApp:

Public Member Functions

 ArrayVariableGroupTestApp ()
 
- Public Member Functions inherited from ChimeraTK::Application
 Application (const std::string &name)
 The constructor takes the application name as an argument. More...
 
 ~Application () override
 
void shutdown () override
 This will remove the global pointer to the instance and allows creating another instance afterwards. More...
 
void initialise () override
 
void optimiseUnmappedVariables (const std::set< std::string > &names) override
 
void run () override
 Execute the module. More...
 
Model::RootProxy getModel ()
 Return the root of the application model. More...
 
void generateXML ()
 Instead of running the application, just initialise it and output the published variables to an XML file. More...
 
void generateDOT ()
 Instead of running the application, just initialise it and output the published variables to a DOT file. More...
 
void enableTestableMode ()
 Enable the testable mode. More...
 
detail::TestableMode & getTestableMode ()
 Get the TestableMode control object of this application. More...
 
void debugMakeConnections ()
 Enable debug output for the ConnectionMaker. More...
 
ModuleType getModuleType () const override
 Return the module type of this module, or in case of a VirtualModule the module type this VirtualModule was derived from. More...
 
std::string getQualifiedName () const override
 Get the fully qualified name of the module instance, i.e. More...
 
std::string getFullDescription () const override
 Obtain the full description including the full description of the owner. More...
 
void enableVariableDebugging (const VariableNetworkNode &node)
 Enable debug output for a given variable. More...
 
void enableDebugDataLoss ()
 Enable debug output for lost data. More...
 
boost::shared_ptr< DeviceManagergetDeviceManager (const std::string &aliasOrCDD)
 Return the DeviceManager for the given alias name or CDD. More...
 
LifeCycleState getLifeCycleState () const
 Get the current LifeCycleState of the application. More...
 
VersionNumber getStartVersion () const
 Return the start version. More...
 
ApplicationModulegetVersionInfoProvider ()
 
void setVersionInfoProvider (ApplicationModule *provider)
 
size_t getCircularNetworkInvalidityCounter (size_t circularNetworkHash) const
 
ConfigReadergetConfigReader ()
 
- Public Member Functions inherited from ChimeraTK::ModuleGroup
 ModuleGroup (ModuleGroup *owner, const std::string &name, const std::string &description, const std::unordered_set< std::string > &tags={})
 Constructor: Create ModuleGroup by the given name with the given description and register it with its owner. More...
 
 ModuleGroup ()=default
 Default constructor to allow late initialisation of module groups. More...
 
 ModuleGroup (ModuleGroup &&other) noexcept
 Move constructor. More...
 
ModuleGroupoperator= (ModuleGroup &&other) noexcept
 Move assignment. More...
 
ModuleType getModuleType () const override
 Return the module type of this module, or in case of a VirtualModule the module type this VirtualModule was derived from. More...
 
ChimeraTK::Model::ModuleGroupProxy getModel ()
 Return the application model proxy representing this module. More...
 
std::string getVirtualQualifiedName () const override
 
void unregisterModule (Module *module) override
 Unregister another module as a sub-module. More...
 
- Public Member Functions inherited from ChimeraTK::Module
 Module (EntityOwner *owner, const std::string &name, const std::string &description, const std::unordered_set< std::string > &tags={})
 Constructor: Create Module by the given name with the given description and register it with its owner. More...
 
 Module ()=default
 Default constructor: Allows late initialisation of modules (e.g. More...
 
 ~Module () override
 Destructor. More...
 
 Module (Module &&other) noexcept
 Move constructor. More...
 
Moduleoperator= (Module &&other) noexcept
 Move assignment operator. More...
 
virtual void prepare ()
 Prepare the execution of the module. More...
 
virtual void terminate ()
 Terminate the module. More...
 
ChimeraTK::ReadAnyGroup readAnyGroup ()
 Create a ChimeraTK::ReadAnyGroup for all readable variables in this Module. More...
 
void readAll (bool includeReturnChannels=false)
 Read all readable variables in the group. More...
 
void readAllNonBlocking (bool includeReturnChannels=false)
 Just call readNonBlocking() on all readable variables in the group. More...
 
void readAllLatest (bool includeReturnChannels=false)
 Just call readLatest() on all readable variables in the group. More...
 
void writeAll (bool includeReturnChannels=false)
 Just call write() on all writable variables in the group. More...
 
void writeAllDestructively (bool includeReturnChannels=false)
 Just call writeDestructively() on all writable variables in the group. More...
 
std::string getQualifiedName () const override
 Get the fully qualified name of the module instance, i.e. More...
 
std::string getFullDescription () const override
 Obtain the full description including the full description of the owner. More...
 
void setOwner (EntityOwner *newOwner)
 Set a new owner. More...
 
EntityOwnergetOwner () const
 
VersionNumber getCurrentVersionNumber () const override
 Return the current version number which has been received with the last push-type read operation. More...
 
void setCurrentVersionNumber (VersionNumber version) override
 Set the current version number. More...
 
DataValidity getDataValidity () const override
 Return the data validity flag. More...
 
void incrementDataFaultCounter () override
 Set the data validity flag to fault and increment the fault counter. More...
 
void decrementDataFaultCounter () override
 Decrement the fault counter and set the data validity flag to ok if the counter has reached 0. More...
 
std::list< EntityOwner * > getInputModulesRecursively (std::list< EntityOwner * > startList) override
 Use pointer to the module as unique identifier. More...
 
size_t getCircularNetworkHash () const override
 Get the ID of the circular dependency network (0 if none). More...
 
ModulefindApplicationModule ()
 Find ApplicationModule owner. More...
 
void disable ()
 Disable the module such that it is not part of the Application. More...
 
- Public Member Functions inherited from ChimeraTK::EntityOwner
 EntityOwner (std::string name, std::string description, std::unordered_set< std::string > tags={})
 Constructor: Create EntityOwner by the given name with the given description. More...
 
 EntityOwner ()
 Default constructor just for late initialisation. More...
 
virtual ~EntityOwner ()=default
 Virtual destructor to make the type polymorphic. More...
 
 EntityOwner (EntityOwner &&other) noexcept
 Move constructor. More...
 
 EntityOwner (const EntityOwner &other)=delete
 
EntityOwneroperator= (EntityOwner &&other) noexcept
 Move assignment operator. More...
 
EntityOwneroperator= (const EntityOwner &other)=delete
 
const std::string & getName () const
 Get the name of the module instance. More...
 
std::string getQualifiedNameWithType () const
 Get the fully qualified name of the module instance, followed by the C++ data type (in pointy brackets) More...
 
const std::string & getDescription () const
 Get the description of the module instance. More...
 
std::list< VariableNetworkNodegetAccessorList () const
 Obtain the list of accessors/variables directly associated with this instance. More...
 
std::list< Module * > getSubmoduleList () const
 Obtain the list of submodules associated with this instance. More...
 
std::list< VariableNetworkNodegetAccessorListRecursive () const
 Obtain the list of accessors/variables associated with this instance and any submodules. More...
 
std::list< Module * > getSubmoduleListRecursive () const
 Obtain the list of submodules associated with this instance and any submodules. More...
 
void registerAccessor (VariableNetworkNode accessor)
 Called inside the constructor of Accessor: adds the accessor to the list. More...
 
void unregisterAccessor (const VariableNetworkNode &accessor)
 Called inside the destructor of Accessor: removes the accessor from the list. More...
 
void registerModule (Module *module, bool addTags=true)
 Register another module as a sub-module. More...
 
void addTag (const std::string &tag)
 Add a tag to all Application-type nodes inside this group. More...
 
void dump (const std::string &prefix="", std::ostream &stream=std::cout) const
 Print the full hierarchy to given stream. More...
 
bool hasReachedTestableMode ()
 Check whether this module has declared that it reached the testable mode. More...
 
template<typename T >
std::string constant (T value)
 Create a variable name which will be automatically connected with a constant value. More...
 

Public Attributes

ArrayInputModule mod {this, "mod", ""}
 
std::unique_ptr< ArrayVariableGroupgroup
 
 this
 
 mod
 

Additional Inherited Members

- Public Types inherited from ChimeraTK::EntityOwner
enum  ModuleType {
  ModuleType::ApplicationModule, ModuleType::ModuleGroup, ModuleType::VariableGroup, ModuleType::ControlSystem,
  ModuleType::Device, ModuleType::Invalid
}
 
- Static Public Member Functions inherited from ChimeraTK::Application
static ApplicationgetInstance ()
 Obtain instance of the application. More...
 
static bool hasInstance ()
 Check whether an instance of Application currently exists. More...
 
static void registerThread (const std::string &name)
 Register the thread in the application system and give it a name. More...
 
static void incrementDataLossCounter (const std::string &name)
 Increment counter for how many write() operations have overwritten unread data. More...
 
static size_t getAndResetDataLossCounter ()
 Return the current value of the data loss counter and (atomically) reset it to 0. More...
 
- Static Public Member Functions inherited from ChimeraTK::Module
static ConfigReaderappConfig ()
 Obtain the ConfigReader instance of the application. More...
 
- Static Public Attributes inherited from ChimeraTK::EntityOwner
static constexpr std::string_view namePrefixConstant {"/@CONST@"}
 Prefix for constants created by constant(). More...
 
- Protected Member Functions inherited from ChimeraTK::Application
VersionNumber getCurrentVersionNumber () const override
 Return the current version number which has been received with the last push-type read operation. More...
 
void setCurrentVersionNumber (VersionNumber) override
 Set the current version number. More...
 
DataValidity getDataValidity () const override
 Return the data validity flag. More...
 
void incrementDataFaultCounter () override
 Set the data validity flag to fault and increment the fault counter. More...
 
void decrementDataFaultCounter () override
 Decrement the fault counter and set the data validity flag to ok if the counter has reached 0. More...
 
std::list< EntityOwner * > getInputModulesRecursively ([[maybe_unused]] std::list< EntityOwner * > startList) override
 
size_t getCircularNetworkHash () const override
 Get the ID of the circular dependency network (0 if none). More...
 
- Protected Attributes inherited from ChimeraTK::Application
Model::RootProxy _model
 The model of the application. More...
 
ConnectionMaker _cm {*this}
 Helper class to create connections. More...
 
std::list< boost::shared_ptr< InternalModule > > _internalModuleList
 List of InternalModules. More...
 
std::map< std::string, boost::shared_ptr< DeviceManager > > _deviceManagerMap
 Map of DeviceManagers. More...
 
bool _testFacilityRunApplicationCalled {false}
 Flag which is set by the TestFacility in runApplication() at the beginning. More...
 
bool _initialiseCalled {false}
 Flag whether initialise() has been called already, to make sure it doesn't get called twice. More...
 
bool _runCalled {false}
 Flag whether run() has been called already, to make sure it doesn't get called twice. More...
 
bool _enableDebugMakeConnections {false}
 Flag if debug output is enabled for creation of the variable connections. More...
 
std::map< size_t, size_t > _pvIdMap
 Map from ProcessArray uniqueId to the variable ID for control system variables. More...
 
detail::CircularDependencyDetector _circularDependencyDetector
 
detail::TestableMode _testableMode
 
std::unordered_set< const void * > _debugMode_variableList
 List of variables for which debug output was requested via enableVariableDebugging(). More...
 
std::atomic< size_t > _dataLossCounter {0}
 Counter for how many write() operations have overwritten unread data. More...
 
bool _debugDataLoss {false}
 Flag whether to debug data loss (as counted with the data loss counter). More...
 
std::atomic< LifeCycleState_lifeCycleState {LifeCycleState::initialisation}
 Life-cycle state of the application. More...
 
VersionNumber _startVersion
 Version number used at application start, e.g. More...
 
ApplicationModule_versionInfoProvider {nullptr}
 
std::map< size_t, std::atomic< uint64_t > > _circularNetworkInvalidityCounters
 Map of atomic invalidity counters for each circular dependency network. More...
 
std::map< size_t, std::list< EntityOwner * > > _circularDependencyNetworks
 The networks of circular dependencies, reachable by their hash, which serves as unique ID. More...
 
std::shared_ptr< Logger_logger {Logger::getSharedPtr()}
 Shared Pointer to central logger instance. More...
 
std::shared_ptr< ConfigReader_configReader
 Manager for Python-based ApplicationModules. More...
 
ConfigReader_defaultConfigReader {nullptr}
 
- Protected Attributes inherited from ChimeraTK::Module
EntityOwner_owner {nullptr}
 Owner of this instance. More...
 
- Protected Attributes inherited from ChimeraTK::EntityOwner
std::string _name
 The name of this instance. More...
 
std::string _description
 The description of this instance. More...
 
std::list< VariableNetworkNode_accessorList
 List of accessors owned by this instance. More...
 
std::list< Module * > _moduleList
 List of modules owned by this instance. More...
 
std::unordered_set< std::string > _tags
 List of tags to be added to all accessors and modules inside this module. More...
 
std::atomic< bool > _testableModeReached {false}
 Flag used by the testable mode to identify whether a thread within the EntityOwner has reached the point where the testable mode lock is acquired. More...
 

Detailed Description

Definition at line 173 of file testConnectedDestructionRunner.cc.

Constructor & Destructor Documentation

◆ ArrayVariableGroupTestApp()

ArrayVariableGroupTestApp::ArrayVariableGroupTestApp ( )
inline

Definition at line 174 of file testConnectedDestructionRunner.cc.

Member Data Documentation

◆ group

std::unique_ptr<ArrayVariableGroup> ArrayVariableGroupTestApp::group

Definition at line 182 of file testConnectedDestructionRunner.cc.

◆ mod [1/2]

ArrayVariableGroupTestApp::mod {this, "mod", ""}

Definition at line 178 of file testConnectedDestructionRunner.cc.

◆ mod [2/2]

ArrayVariableGroupTestApp::mod

◆ this

ArrayVariableGroupTestApp::this

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