Singleton MangerRegister for the Atmosphere. More...
#include <AManagerRegister.h>
Public Types | |
typedef std::map< std::string, std::string > | IndexMap |
typedef boost::indirect_iterator < InternalManagerIterator, VManager & > | ManagerIterator |
Iterator over configured managers. More... | |
enum | Status { eFound, eNotFound } |
Specifies success or (eventually) various possible failure modes. More... | |
Public Member Functions | |
void | Configure (const utl::Branch branch) |
Configure the ManagerRegister from a Branch. More... | |
void | Configure (const std::ostringstream &configInstructions) |
Configure the ManagerRegister from a string. More... | |
Status | GetData (double &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (int &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::string &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::vector< double > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::vector< int > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::vector< std::string > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::vector< bool > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::list< double > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::list< int > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::list< std::string > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (utl::TabulatedFunction &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (utl::TabulatedFunctionComplexLgAmpPhase &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::list< std::pair< int, int > > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::map< int, utl::TabulatedFunction > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::vector< std::vector< int > > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
Status | GetData (std::map< std::string, double > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const |
template<typename T > | |
Status | GetData (T &returnData, const std::string &component, const std::string &property, const IndexMap &componentIndex=IndexMap()) const |
virtual Status | GetData (bool &, const std::string &componentProperty, const std::string &componentName, const VManager::IndexMap &) const |
virtual Status | GetData (std::list< std::pair< int, int >> &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0 |
virtual Status | GetData (std::vector< std::vector< int >> &, const std::string &componentProperty, const std::string &componentName, const VManager::IndexMap &) const |
virtual Status | GetData (std::map< unsigned int, int > &, const std::string &componentProperty, const std::string &componentName, const VManager::IndexMap &) const |
Status | GetData (Handle &returnData, const std::string &component, const std::string &property, const IndexMap &index=IndexMap()) const |
new data accessor More... | |
template<typename T > | |
Status | GetDataOrThrow (T &returnData, const std::string &component, const std::string &property, const IndexMap &index=IndexMap()) const |
const VManager & | GetManager (const std::string &managerName) const |
Get a specific manager by name. More... | |
VManager & | GetManager (const std::string &managerName) |
Get a specific (modifiable) manager by name. More... | |
const std::string & | GetName () const |
virtual void | Init (const std::string &) |
Manager Initialization. configLink is the CentralConfig hook for the configuration file. More... | |
bool | IsInitialized () const |
ManagerIterator | ManagersBegin () const |
Iterator pointing to first available manager. More... | |
ManagerIterator | ManagersEnd () const |
Iterator pointing one past the last available manager. More... | |
void | SetName (const std::string &name) |
void | SetReportingErrors (const bool flag=true) |
Generic data accessors. More... | |
Static Public Member Functions | |
template<typename T > | |
static T | FindComponent (const std::string &componentName, const IndexMap &componentIndex) |
template<typename T , typename U > | |
static T | FindComponent (const std::string &componentName, const U &defaultValue, const IndexMap &componentIndex) |
static std::string | QueryInfoMessage (const Handle &returnData, const std::string &component) |
static std::string | QueryInfoMessage (const Handle &returnData, const std::string &component, const std::string &property, const IndexMap &index) |
static std::string | QueryInfoMessage (const std::string &componentProperty, const std::string &componentName) |
static std::string | QueryInfoMessage (const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) |
Public Attributes | |
static AManagerRegister &return | instance |
Protected Member Functions | |
template<typename T > | |
void | AddAvailability (const std::string &component) |
void | FindConfig (const std::string &configLink) |
Locate the configuration file in CentralConfig and make a Reader for it. More... | |
bool | IsReportingErrors () const |
std::string | NotImplementedMessage (const std::string &type, const std::string &componentProperty, const std::string &componentName) const |
Protected Attributes | |
std::set< std::string > | fAvailableComponents |
utl::Branch | fBranch |
bool | fIsInitialized = false |
bool | fReportingErrors = false |
Private Member Functions | |
AManagerRegister () | |
AManagerRegister (const AManagerRegister &) | |
AManagerRegister & | operator= (const AManagerRegister &) |
virtual | ~AManagerRegister () |
Friends | |
class | utl::Singleton< AManagerRegister > |
Singleton MangerRegister for the Atmosphere.
Definition at line 41 of file AManagerRegister.h.
|
inherited |
Definition at line 133 of file VManager.h.
|
inherited |
Iterator over configured managers.
Definition at line 94 of file ManagerRegister.h.
|
inherited |
Specifies success or (eventually) various possible failure modes.
Various failure modes to be specified (for example, failure to connect to db, faiure to find db record, failure to find table name, etc
Enumerator | |
---|---|
eFound | |
eNotFound |
Definition at line 127 of file VManager.h.
|
inlineprivate |
Definition at line 45 of file AManagerRegister.h.
|
inlineprivatevirtual |
Definition at line 46 of file AManagerRegister.h.
|
private |
|
inlineprotectedinherited |
Definition at line 347 of file VManager.h.
|
inherited |
Configure the ManagerRegister from a Branch.
From the Branch provided as an argument, this method steps through the DOM tree and attempts to configure the ManagerRegister according to the instructions therein. The idea is that this method can be used during initialization of the Detector, where the Branch passed to this method is the one created by the CentralConfig for the ManagerRegister configuration. According to instructions in the DOM tree, this method looks up the pointers to the requested managers and places them in the requested order in an internal list. The ManagerIterator then iterates over this list of manager pointers.
Definition at line 15 of file ManagerRegister.cc.
Referenced by DBSelectionTestSuccess::testSelectDB(), and DBSelectionTestFail::testSelectDB().
|
inherited |
Configure the ManagerRegister from a string.
This method parses the string provided in the method argument, which must be in XML format. According to the XML instructions, the method looks up the pointers to the requested managers and places them in the requested order in an internal list. The ManagerIterator then iterates over this list of manager pointers.
|
inlinestaticinherited |
Definition at line 307 of file VManager.h.
References ERROR.
|
inlinestaticinherited |
Definition at line 322 of file VManager.h.
|
protectedinherited |
Locate the configuration file in CentralConfig and make a Reader for it.
Definition at line 25 of file VManager.cc.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 145 of file ManagerRegister.h.
Referenced by rdet::RDetector::AddStationListFromSManager(), and DBSelectionTestFail::testSelectDB().
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 146 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 148 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 149 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 150 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 151 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 152 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 153 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 154 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 155 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 156 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 157 of file ManagerRegister.h.
|
inlineinherited |
Definition at line 158 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 159 of file ManagerRegister.h.
|
inlineinherited |
Definition at line 160 of file ManagerRegister.h.
|
inlinevirtualinherited |
Implements det::VManager.
Definition at line 161 of file ManagerRegister.h.
|
inlineinherited |
Definition at line 166 of file ManagerRegister.h.
References det::ManagerRegister::GenericGetData().
|
inlinevirtualinherited |
Definition at line 241 of file VManager.h.
|
pure virtualinherited |
|
inlinevirtualinherited |
Definition at line 255 of file VManager.h.
|
inlinevirtualinherited |
Definition at line 256 of file VManager.h.
|
inlineinherited |
new data accessor
Any property of the detector is supposed to be accessible through this interface. Interface specifies the name of the property and the component to which it belongs, together with a map of (index name, index value) identifying the specific instance of the component. For example, to request the quantum efficiency of PMT 3 in station 57, one would have
Definition at line 275 of file VManager.h.
References det::VManager::CheckedGetData().
|
inlineinherited |
Definition at line 178 of file ManagerRegister.h.
References det::VManager::eNotFound, det::ManagerRegister::GenericGetData(), and det::ManagerRegister::NotFoundAndThrow().
Referenced by rdet::RDetector::GetBadStationReason(), sdet::Station::GetFADCTraceLength(), and sdet::Scintillator::GetNBars().
|
inherited |
Get a specific manager by name.
Definition at line 94 of file ManagerRegister.cc.
Referenced by RdStationAssociator::RdStationAssociator::AddVirtualStations(), StationListCreatorModuleNS::StationListCreatorModule::Finish(), det::ManagerRegister::GetManager(), and MdOverrideManagerAG::MdOverrideManager::Run().
|
inherited |
Get a specific (modifiable) manager by name.
Definition at line 85 of file ManagerRegister.cc.
References det::ManagerRegister::GetManager().
|
inlineinherited |
Definition at line 330 of file VManager.h.
References det::VManager::fName.
Referenced by det::VManager::CheckedGetData(), det::ManagerRegister::GenericGetData(), det::ManagerRegister::GetManagerData(), and det::ManagerBuilderRegisterEntry::ManagerBuilderRegisterEntry().
|
inlinevirtualinherited |
Manager Initialization. configLink is the CentralConfig hook for the configuration file.
This method instructs the manager to initialize itself. In the case of a manager which fetches data from an XML file, configuration involves getting the link to the appropriate configuration file from the CentralConfig and parsing the file to create a DOM or some other representation of the data in memory. For a manager which uses a MySQL database, configuration involves getting the link to the appropriate configuration file from the CentralConfig, then using the instructions in that file to establish a connection to the relevant database.
Note that one might initially think it makes more sense to just initialize managers automatically in their constructors so that developers don't need to remember to explicitly invoke the Init() method. (In fact it worked like this in an earlier version.) The rationale for not having automatic configuration via the constructors is that the configuration can now be delayed until the time that the user specifically requests a particular manager, rather than doing it at the time that the Detector object constructs the Managers. For example, when the user declares his set of desired managers in the ManagerRegister configuration, only those particular Managers will get initialized (though all available Managers will be constructed!). Consider someone who wants to test only the Fluorescence portion of the detector. By requiring explicit invocation of Init() one avoids providing hooks to all the SD related configuration files and databases which aren't even going to be used. Though the SD Managers will be constructed, no attempt will be made to Initialize them until the user specifically requests them by, for example, specifying them in the configuration file for the appropriate ManagerRegister.
Reimplemented from det::VManager.
Definition at line 56 of file ManagerRegister.h.
|
inlineinherited |
Definition at line 214 of file VManager.h.
References det::VManager::fIsInitialized.
Referenced by det::ManagerRegister::InterpretXML().
|
inlineprotectedinherited |
Definition at line 338 of file VManager.h.
References det::VManager::fReportingErrors.
Referenced by det::VManager::CheckedGetData(), det::XXMLManager< Info >::FindModelBranch(), det::XXMLManager< Info >::GetDataInternal(), and det::if().
|
inlineinherited |
Iterator pointing to first available manager.
Definition at line 97 of file ManagerRegister.h.
References det::ManagerRegister::fConfiguredManagerList.
Referenced by rdet::RDetector::AddStationListFromSManager(), det::ManagerRegister::GenericGetData(), and det::ManagerRegister::GetManagerData().
|
inlineinherited |
Iterator pointing one past the last available manager.
Definition at line 101 of file ManagerRegister.h.
References det::ManagerRegister::fConfiguredManagerList.
Referenced by rdet::RDetector::AddStationListFromSManager(), det::ManagerRegister::GenericGetData(), and det::ManagerRegister::GetManagerData().
|
protectedinherited |
Definition at line 47 of file VManager.cc.
|
private |
|
staticinherited |
Definition at line 108 of file VManager.cc.
References det::VManager::Handle::GetTypeIdName().
Referenced by det::VManager::CheckedGetData(), det::ManagerRegister::GenericGetData(), atm::AAerosolSQLManager::GetDBResFundamental(), atm::AAerosolSQLManager::GetDBResVector(), det::ManagerRegister::GetManagerData(), fdet::Pixel::GetPixelData(), fdet::Pixel::GetPixelDataDiaphragm(), and det::if().
|
staticinherited |
Definition at line 119 of file VManager.cc.
|
inlinestaticinherited |
Definition at line 294 of file VManager.h.
|
staticinherited |
Definition at line 58 of file VManager.cc.
|
inlineinherited |
Definition at line 332 of file VManager.h.
References det::VManager::fName.
Referenced by det::ManagerRegister::InterpretXML().
|
inlineinherited |
Generic data accessors.
Any property of the detector is supposed to be accessible through this interface. Interface specifies the name of the property and the component to which it belongs, together with a map of (index name, index value) identifying the specific instance of the component. For example, to request the quantum efficiency of PMT 3 in station 57, one would have
Definition at line 231 of file VManager.h.
References det::VManager::fReportingErrors.
|
friend |
Definition at line 50 of file AManagerRegister.h.
|
protectedinherited |
Definition at line 362 of file VManager.h.
Referenced by atm::AAerosolSQLManager::AAerosolSQLManager(), atm::ACloudSQLManager::ACloudSQLManager(), atm::ALidarSQLManager::ALidarSQLManager(), atm::ACloudSQLManager::GetDBResFundamental(), atm::ALidarSQLManager::GetDBResFundamental(), atm::AAerosolSQLManager::GetDBResFundamental(), atm::ALidarSQLManager::GetDBResVector(), and atm::AAerosolSQLManager::GetDBResVector().
|
protectedinherited |
Definition at line 360 of file VManager.h.
Referenced by det::XXMLManager< Info >::FindRoot(), det::XXMLManager< Info >::ConfigHandler< AllowMultiConfig, dummy >::for(), and det::XXMLManager< Info >::ConfigHandler< false, dummy >::Handle().
|
mutableprotectedinherited |
Definition at line 354 of file VManager.h.
Referenced by det::VManager::IsInitialized().
|
protectedinherited |
Definition at line 356 of file VManager.h.
Referenced by det::VManager::IsReportingErrors(), and det::VManager::SetReportingErrors().
|
inherited |
Definition at line 44 of file Singleton.h.