tdaq-develop-2025-02-12
|
Public Types | |
enum class | GroupType { UNKNOWN_TYPE , CONTEXT_TYPE , BACKBONE_TYPE , ITERATE_TYPE , CONFIGURATION_TYPE } |
enum class | LoadGroupType { ALL_TYPES , ONLY_BACKBONE_OR_CONTEXT_TYPES , ONLY_BACKBONE_TYPE } |
typedef std::map< std::string, std::pair< std::pair< std::string, TableGroupKey >, std::map< std::string, TableVersion > > > | lastGroupLoad_t |
Public Member Functions | |
const std::set< std::string > & | getConfigurationMemberNames (void) |
ConfigurationManager (bool initForWriteAccess=false, bool initializeFromFhicl=false) | |
void | init (std::string *accumulatedErrors=0, bool initForWriteAccess=false, std::string *accumulatedWarnings=0) |
void | destroy (void) |
void | destroyTableGroup (const std::string &theGroup="", bool onlyDeactivate=false) |
std::string | runTimeSeconds () |
void | loadTableGroup (const std::string &tableGroupName, const TableGroupKey &tableGroupKey, bool doActivate=false, std::map< std::string, TableVersion > *groupMembers=0, ProgressBar *progressBar=0, std::string *accumulateWarnings=0, std::string *groupComment=0, std::string *groupAuthor=0, std::string *groupCreateTime=0, bool doNotLoadMember=false, std::string *groupTypeString=0, std::map< std::string, std::string > *groupAliases=0, ConfigurationManager::LoadGroupType onlyLoadIfBackboneOrContext=ConfigurationManager::LoadGroupType::ALL_TYPES, bool ignoreVersionTracking=false) |
void | copyTableGroupFromCache (const ConfigurationManager &cacheConfigMgr, const std::map< std::string, TableVersion > &groupMembers, const std::string &configGroupName="", const TableGroupKey &tableGroupKey=TableGroupKey(TableGroupKey::INVALID), bool doActivate=false, bool ignoreVersionTracking=false) |
std::pair< std::string, TableGroupKey > | getGroupOfLoadedTable (const std::string &tableName) const |
void | loadMemberMap (const std::map< std::string, TableVersion > &memberMap, std::string *accumulateWarnings=0) |
TableGroupKey | loadConfigurationBackbone (void) |
template<class T > | |
const T * | getTable (const std::string &tableName) const |
const TableBase * | getTableByName (const std::string &configurationName) const |
void | dumpActiveConfiguration (const std::string &filePath, const std::string &dumpType, const std::string &configurationAlias, const std::string &logEntry, const std::string &activeUsers, std::ostream &altOut=std::cout) |
void | dumpMacroMakerModeFhicl (void) |
std::map< std::string, std::pair< std::string, TableGroupKey > > | getActiveGroupAliases (void) |
std::map< std::string, std::map< std::string, TableVersion > > | getVersionAliases (void) const |
std::pair< std::string, TableGroupKey > | getTableGroupFromAlias (std::string systemAlias, ProgressBar *progressBar=0) |
Getters. More... | |
std::map< std::string, std::pair< std::string, TableGroupKey > > | getActiveTableGroups (void) const |
const std::map< std::string, std::pair< std::string, TableGroupKey > > & | getFailedTableGroups (void) const |
const lastGroupLoad_t & | getLastTableGroups (void) const |
const std::string & | getActiveGroupName (const ConfigurationManager::GroupType &type=ConfigurationManager::GroupType::CONFIGURATION_TYPE) const |
TableGroupKey | getActiveGroupKey (const ConfigurationManager::GroupType &type=ConfigurationManager::GroupType::CONFIGURATION_TYPE) const |
ConfigurationTree | getNode (const std::string &nodeString, bool doNotThrowOnBrokenUIDLinks=false) const |
"root/parent/parent/" | |
std::map< std::string, ConfigurationTree > | getNodes (const std::string &nodeString) const |
ConfigurationTree | getContextNode (const std::string &contextUID, const std::string &applicationUID) const |
ConfigurationTree | getSupervisorNode (const std::string &contextUID, const std::string &applicationUID) const |
ConfigurationTree | getSupervisorTableNode (const std::string &contextUID, const std::string &applicationUID) const |
ConfigurationTree | getGatewaySupervisorNode (void) const |
There can only be one active Gateway Superivsor app, so find it. | |
std::vector< std::pair< std::string, ConfigurationTree > > | getChildren (std::map< std::string, TableVersion > *memberMap=0, std::string *accumulatedTreeErrors=0) const |
std::map< std::string, ConfigurationTree > | getChildrenMap (std::map< std::string, TableVersion > *memberMap=0, std::string *accumulatedTreeErrors=0) const |
std::string | getFirstPathToNode (const ConfigurationTree &node, const std::string &startPath="/") const |
getFirstPathToNode More... | |
std::map< std::string, TableVersion > | getActiveVersions (void) const |
getActiveVersions | |
const std::string & | getOwnerContext (void) |
const std::string & | getOwnerApp (void) |
bool | isOwnerFirstAppInContext (void) |
std::map< std::string, std::pair< std::string, TableGroupKey > > | getOtherSubsystemActiveTableGroups (const std::string &otherSubsystemUID, std::string *userDataPathPtr=nullptr, std::string *hostnamePtr=nullptr, std::string *usernamePtr=nullptr) |
void | getOtherSubsystemInstanceInfo (const std::string &otherSubsystemUID, std::string *userDataPathPtr=nullptr, std::string *hostnamePtr=nullptr, std::string *usernamePtr=nullptr, std::string *fullNamePtr=nullptr) |
std::set< std::string > | getOtherSubsystemConfigAliases (const std::string &otherSubsystemUID) |
Ignore any System Aliases with "Context" or "Iterat" in the name. | |
std::set< std::string > | getOtherSubsystemFilteredConfigAliases (const std::string &otherSubsystemUID, const std::string &otherSubsystemFsmName) |
Ignore any System Aliases with "Context" or "Iterat" in the name. | |
void | getOtherSubsystemConfigAliasInfo (const std::string &otherSubsystemUID, const std::string &configAlias, std::pair< std::string, TableGroupKey > &groupTranslation, std::string &groupComment, std::string &groupAuthor, std::string &groupCreationTime) |
returns configAlias translation group info by reference | |
std::shared_ptr< TableGroupKey > | makeTheTableGroupKey (TableGroupKey key) |
Setters/Modifiers. More... | |
void | restoreActiveTableGroups (bool throwErrors=false, const std::string &pathToActiveGroupsFile="", ConfigurationManager::LoadGroupType onlyLoadIfBackboneOrContext=ConfigurationManager::LoadGroupType::ALL_TYPES, std::string *accumulatedWarnings=0) |
void | setOwnerContext (const std::string &contextUID) |
void | setOwnerApp (const std::string &appUID) |
Static Public Member Functions | |
static const std::set< std::string > & | getContextMemberNames (void) |
static const std::set< std::string > & | getBackboneMemberNames (void) |
static const std::set< std::string > & | getIterateMemberNames (void) |
static const std::string & | convertGroupTypeToName (const ConfigurationManager::GroupType &groupTypeId) |
static ConfigurationManager::GroupType | getTypeOfGroup (const std::map< std::string, TableVersion > &memberMap) |
static const std::string & | getTypeNameOfGroup (const std::map< std::string, TableVersion > &memberMap) |
static void | saveGroupNameAndKey (const std::pair< std::string, TableGroupKey > &theGroup, const std::string &fileName) |
static std::pair< std::string, TableGroupKey > | loadGroupNameAndKey (const std::string &fileName, std::string &returnedTimeString) |
Public Attributes | |
std::set< std::string > | configurationMemberNames_ |
list of 'active' configuration members | |
std::chrono::steady_clock::time_point | startClockTime_ |
std::chrono::steady_clock::time_point | deltaClockTime_ |
Static Public Attributes | |
static const unsigned int | PROCESSOR_COUNT |
Static members. More... | |
static const std::string | READONLY_USER = "READONLY_USER" |
static const std::string | ACTIVE_GROUPS_FILENAME |
added env check for otsdaq_flatten_active_to_version to function More... | |
static const std::string | ALIAS_VERSION_PREAMBLE = "ALIAS:" |
static const std::string | SCRATCH_VERSION_ALIAS = "Scratch" |
static const std::string | XDAQ_CONTEXT_TABLE_NAME = "XDAQContextTable" |
static const std::string | XDAQ_APPLICATION_TABLE_NAME |
static const std::string | XDAQ_APP_PROPERTY_TABLE_NAME |
static const std::string | GROUP_ALIASES_TABLE_NAME = "GroupAliasesTable" |
static const std::string | VERSION_ALIASES_TABLE_NAME |
static const std::string | ARTDAQ_TOP_TABLE_NAME = "ARTDAQSupervisorTable" |
static const std::string | DESKTOP_ICON_TABLE_NAME = "DesktopIconTable" |
static const std::string | GROUP_TYPE_NAME_CONTEXT = "Context" |
static const std::string | GROUP_TYPE_NAME_BACKBONE = "Backbone" |
static const std::string | GROUP_TYPE_NAME_ITERATE = "Iterate" |
static const std::string | GROUP_TYPE_NAME_CONFIGURATION = "Configuration" |
static const std::string | GROUP_TYPE_NAME_UNKNOWN = "UNKNOWN" |
static const std::string | LAST_TABLE_GROUP_SAVE_PATH |
static const std::string | LAST_ACTIVATED_CONFIG_GROUP_FILE |
static const std::string | LAST_ACTIVATED_CONTEXT_GROUP_FILE |
static const std::string | LAST_ACTIVATED_BACKBONE_GROUP_FILE |
static const std::string | LAST_ACTIVATED_ITERATOR_GROUP_FILE |
static const uint8_t | METADATA_COL_ALIASES = 1 |
static const uint8_t | METADATA_COL_COMMENT = 2 |
static const uint8_t | METADATA_COL_AUTHOR = 3 |
static const uint8_t | METADATA_COL_TIMESTAMP = 4 |
static const std::set< std::string > | contextMemberNames_ |
list of context members More... | |
static const std::set< std::string > | backboneMemberNames_ |
list of backbone members More... | |
static const std::set< std::string > | iterateMemberNames_ |
list of iterate members More... | |
static const std::string | CONTEXT_SUBSYSTEM_OPTIONAL_TABLE |
static const std::string | UNKNOWN_INFO = "UNKNOWN" |
static const std::string | UNKNOWN_TIME = "0" |
Protected Attributes | |
std::string | mfSubject_ |
Friends | |
class | ConfigurationManagerRW |
class | GatewaySupervisor |
Definition at line 21 of file ConfigurationManager.h.
ConfigurationManager::ConfigurationManager | ( | bool | initForWriteAccess = false , |
bool | initializeFromFhicl = false |
||
) |
Construct/Destruct
Definition at line 103 of file ConfigurationManager.cc.
|
static |
convertGroupTypeIdToName return translation: 0 for context 1 for backbone 2 for configuration (others)
Definition at line 596 of file ConfigurationManager.cc.
void ConfigurationManager::copyTableGroupFromCache | ( | const ConfigurationManager & | cacheConfigMgr, |
const std::map< std::string, TableVersion > & | memberMap, | ||
const std::string & | groupName = "" , |
||
const TableGroupKey & | groupKey = TableGroupKey(TableGroupKey::INVALID) , |
||
bool | doActivate = false , |
||
bool | ignoreVersionTracking = false |
||
) |
copyTableGroupFromCache() Used, for example, to copy tables from ConfigurationManager to another ConfigurationManager without making db requests
Definition at line 2164 of file ConfigurationManager.cc.
void ConfigurationManager::destroyTableGroup | ( | const std::string & | theGroup = "" , |
bool | onlyDeactivate = false |
||
) |
destroyTableGroup destroy all if theGroup == "" else destroy that group if onlyDeactivate, then don't delete, just deactivate view
Definition at line 464 of file ConfigurationManager.cc.
void ConfigurationManager::dumpActiveConfiguration | ( | const std::string & | filePath, |
const std::string & | dumpType, | ||
const std::string & | configurationAlias, | ||
const std::string & | logEntry, | ||
const std::string & | activeUsers, | ||
std::ostream & | altOut = std::cout |
||
) |
dumpActiveConfiguration if filePath == "", then output to cout
Definition at line 992 of file ConfigurationManager.cc.
std::map< std::string, std::pair< std::string, TableGroupKey > > ConfigurationManager::getActiveGroupAliases | ( | void | ) |
Aliases are pulled from latest active Backbone group (i.e. the latest activated at the ConfigurationGUISupervisor)!
Definition at line 3263 of file ConfigurationManager.cc.
std::map< std::string, std::pair< std::string, TableGroupKey > > ConfigurationManager::getActiveTableGroups | ( | void | ) | const |
getActiveTableGroups get the active table groups map map<type, pair <groupName , TableGroupKey> >
Note: invalid TableGroupKey means no active group currently
Definition at line 2737 of file ConfigurationManager.cc.
std::vector< std::pair< std::string, ConfigurationTree > > ConfigurationManager::getChildren | ( | std::map< std::string, TableVersion > * | memberMap = 0 , |
std::string * | accumulatedTreeErrors = 0 |
||
) | const |
getChildren if memberMap is passed then only consider children in the map
if accumulatedTreeErrors is non null, check for disconnects occurs. check is 2 levels deep which should get to the links starting at tables.
Definition at line 2914 of file ConfigurationManager.cc.
std::map< std::string, ConfigurationTree > ConfigurationManager::getChildrenMap | ( | std::map< std::string, TableVersion > * | memberMap = 0 , |
std::string * | accumulatedTreeErrors = 0 |
||
) | const |
getChildrenMap if memberMap is passed then only consider children in the map
if accumulatedTreeErrors is non null, check for disconnects occurs. check is 2 levels deep which should get to the links starting at tables.
Definition at line 3025 of file ConfigurationManager.cc.
std::string ConfigurationManager::getFirstPathToNode | ( | const ConfigurationTree & | node, |
const std::string & | startPath = "/" |
||
) | const |
getFirstPathToNode
void ConfigurationManager::getFirstPathToNode(const ConfigurationTree &node, const ConfigurationTree &startNode) const
Definition at line 2899 of file ConfigurationManager.cc.
|
inline |
getTable get configuration * with specific configuration type
Definition at line 165 of file ConfigurationManager.h.
const TableBase * ConfigurationManager::getTableByName | ( | const std::string & | tableName | ) | const |
getTableByName Get read-only pointer to configuration. If Read/Write access is needed use ConfigurationManagerWithWriteAccess (For general use, Write access should be avoided)
Definition at line 3133 of file ConfigurationManager.cc.
std::pair< std::string, TableGroupKey > ConfigurationManager::getTableGroupFromAlias | ( | std::string | systemAlias, |
ProgressBar * | progressBar = 0 |
||
) |
Getters.
getTableGroupKey use backbone to determine default key for systemAlias.
NOTE: temporary special aliases are also allowed with the following format: GROUP:<name>:<key>
return INVALID on failure else, pair<group name , TableGroupKey>
Definition at line 3199 of file ConfigurationManager.cc.
|
static |
getTypeNameOfGroup return string for group type
Definition at line 793 of file ConfigurationManager.cc.
|
static |
getTypeOfGroup static return CONTEXT_TYPE for context BACKBONE_TYPE for backbone ITERATE_TYPE for iterate CONFIGURATION_TYPE for configuration (others)
Definition at line 618 of file ConfigurationManager.cc.
std::map< std::string, std::map< std::string, TableVersion > > ConfigurationManager::getVersionAliases | ( | void | ) | const |
Note: this ConfigurationManager::getVersionAliases is called internally and by ConfigurationManagerRW::getVersionAliases
getVersionAliases() get version aliases organized by table, for currently active backbone tables
Definition at line 3292 of file ConfigurationManager.cc.
void ConfigurationManager::init | ( | std::string * | accumulatedErrors = 0 , |
bool | initForWriteAccess = false , |
||
std::string * | accumulatedWarnings = 0 |
||
) |
init if accumulatedErrors is not null.. fill it with errors else throw errors (but do not ask restoreActiveTableGroups to throw errors) Notes: Errors are handled separately from Warnings. Errors are used to monitor errors but do not allow, and warnings are used to allow warnings and monitor.
Definition at line 230 of file ConfigurationManager.cc.
TableGroupKey ConfigurationManager::loadConfigurationBackbone | ( | void | ) |
loadConfigurationBackbone loads the active backbone configuration group returns the active group key that was loaded
Definition at line 3171 of file ConfigurationManager.cc.
|
static |
loadGroupNameAndKey static loads group name and key (and time) from specified file returns time string in returnedTimeString
Note: this is static so the GatewaySupervisor and WizardSupervisor can call it
Definition at line 4537 of file ConfigurationManager.cc.
void ConfigurationManager::loadMemberMap | ( | const std::map< std::string, TableVersion > & | memberMap, |
std::string * | accumulatedWarnings = 0 |
||
) |
loadMemberMap loads tables given by name/version pairs in memberMap Note: does not activate them.
if accumulateWarnings, then put in string, do not throw
Definition at line 1223 of file ConfigurationManager.cc.
void ConfigurationManager::loadTableGroup | ( | const std::string & | groupName, |
const TableGroupKey & | groupKey, | ||
bool | doActivate = false , |
||
std::map< std::string, TableVersion > * | groupMembers = 0 , |
||
ProgressBar * | progressBar = 0 , |
||
std::string * | accumulatedWarnings = 0 , |
||
std::string * | groupComment = 0 , |
||
std::string * | groupAuthor = 0 , |
||
std::string * | groupCreateTime = 0 , |
||
bool | doNotLoadMembers = false , |
||
std::string * | groupTypeString = 0 , |
||
std::map< std::string, std::string > * | groupAliases = 0 , |
||
ConfigurationManager::LoadGroupType | onlyLoadIfBackboneOrContext = ConfigurationManager::LoadGroupType::ALL_TYPES , |
||
bool | ignoreVersionTracking = false |
||
) |
loadTableGroup load all members of configuration group if doActivate DOES set theConfigurationTableGroup_, theContextTableGroup_, or theBackboneTableGroup_ on success this also happens with ConfigurationManagerRW::activateTableGroup for each member configBase->init()
if progressBar != 0, then do step handling, for finer granularity
if(doNotLoadMembers) return memberMap; //this is useful if just getting group metadata
else NOTE: active views are changed! (when loading member map)
Regarding Member Table Aliases: alias names are tracked in the metadata table, however! The group member versions are decided at group save time (loadTableGroup should always return the same groupName -> memberMap translation). The group member versions do not undergo alias translation at load time (i.e. loadTableGroup). The alias map can be retrieved using the groupAliases parameter.
throws exception on failure. if accumulatedTreeErrors, then "ignore warnings"
Definition at line 1512 of file ConfigurationManager.cc.
std::shared_ptr< TableGroupKey > ConfigurationManager::makeTheTableGroupKey | ( | TableGroupKey | key | ) |
Setters/Modifiers.
============================================================================== const DACStream& ConfigurationManager::getDACStream(std::string fecName)
Definition at line 3382 of file ConfigurationManager.cc.
void ConfigurationManager::restoreActiveTableGroups | ( | bool | throwErrors = false , |
const std::string & | pathToActiveGroupsFile = "" , |
||
ConfigurationManager::LoadGroupType | onlyLoadIfBackboneOrContext = ConfigurationManager::LoadGroupType::ALL_TYPES , |
||
std::string * | accumulatedWarnings = 0 |
||
) |
restoreActiveTableGroups load the active groups from file Note: this should be used by the Supervisor to maintain the same configurationGroups surviving software system restarts
Definition at line 281 of file ConfigurationManager.cc.
|
friend |
ConfigurationManagerRW is a "Friend" class of ConfigurationManager so has access to private members.
Definition at line 25 of file ConfigurationManager.h.
|
static |
added env check for otsdaq_flatten_active_to_version to function
Definition at line 40 of file ConfigurationManager.h.
|
static |
list of backbone members
Definition at line 70 of file ConfigurationManager.h.
|
static |
Definition at line 75 of file ConfigurationManager.h.
|
static |
list of context members
Definition at line 69 of file ConfigurationManager.h.
|
static |
list of iterate members
Definition at line 71 of file ConfigurationManager.h.
|
static |
Definition at line 61 of file ConfigurationManager.h.
|
static |
Definition at line 59 of file ConfigurationManager.h.
|
static |
Definition at line 60 of file ConfigurationManager.h.
|
static |
Definition at line 62 of file ConfigurationManager.h.
|
static |
Definition at line 58 of file ConfigurationManager.h.
|
static |
Static members.
may return 0 when not able to detect number of processors
Definition at line 37 of file ConfigurationManager.h.
std::chrono::steady_clock::time_point ots::ConfigurationManager::startClockTime_ |
Getters
Definition at line 122 of file ConfigurationManager.h.
|
static |
Definition at line 48 of file ConfigurationManager.h.
|
static |
Definition at line 46 of file ConfigurationManager.h.
|
static |
Definition at line 45 of file ConfigurationManager.h.