1 #ifndef _ots_ConfigurationManagerRW_h_
2 #define _ots_ConfigurationManagerRW_h_
7 #include "otsdaq-core/ConfigurationInterface/ConfigurationManager.h"
21 std::set<ConfigurationVersion> versions_;
26 std::set<ConfigurationGroupKey> keys_;
27 std::string latestKeyGroupAuthor_, latestKeyGroupComment_,
28 latestKeyGroupCreationTime_, latestKeyGroupTypeString_;
37 #define __GETCFG_RW__(X) getConfigurationRW<X>(QUOTE(X))
52 const std::string& getUsername (
void)
const {
return username_; }
55 const std::map<std::string, ConfigurationInfo>& getAllConfigurationInfo (
bool refresh=
false, std::string *accumulatedErrors=0,
const std::string &errorFilterName=
"");
57 std::map<std::string,std::map<std::string,ConfigurationVersion> > getActiveVersionAliases (
void)
const;
60 T* getConfigurationRW(std::string name)
62 return (T*)getConfigurationByName(name);
66 ConfigurationGroupKey findConfigurationGroup (
const std::string &groupName,
const std::map<std::string, ConfigurationVersion> &groupMembers);
74 void clearCachedVersions (
const std::string &configurationName);
75 void clearAllCachedVersions ();
80 void activateConfigurationGroup (
const std::string &configGroupName,
ConfigurationGroupKey configGroupKey, std::string *accumulatedTreeErrors=0);
89 ConfigurationGroupKey saveNewConfigurationGroup (
const std::string &groupName, std::map<std::string, ConfigurationVersion> &groupMembers,
const std::string &groupComment = ViewColumnInfo::DATATYPE_COMMENT_DEFAULT);
95 const GroupInfo& getGroupInfo (
const std::string &groupName);
96 const std::map<std::string, GroupInfo>& getAllGroupInfo () {
return allGroupInfo_;}
98 void testXDAQContext();
109 std::map<std::string, ConfigurationInfo> allConfigurationInfo_;
110 std::map<std::string, GroupInfo> allGroupInfo_;
121 bool createdTemporaryVersion_;
123 std::string configName_;
125 TableEditStruct(){ __SS__ <<
"impossible!" << std::endl;
throw std::runtime_error(ss.str());}
127 :createdTemporaryVersion_(
false)
129 ,configName_(configName)
131 __COUT__ <<
"Creating Table-Edit Struct for " << configName_ << std::endl;
132 config_ = cfgMgr->getConfigurationByName(configName_);
134 if(!(originalVersion_ =
135 config_->getView().getVersion()).isTemporaryVersion())
137 __COUT__ <<
"Start version " << originalVersion_ << std::endl;
139 temporaryVersion_ = config_->createTemporaryView(originalVersion_);
140 cfgMgr->saveNewConfiguration(
142 temporaryVersion_,
true);
144 __COUT__ <<
"Created temporary version " << temporaryVersion_ << std::endl;
145 createdTemporaryVersion_ =
true;
148 __COUT__ <<
"Using temporary version " << temporaryVersion_ << std::endl;
150 cfgView_ = config_->getViewP();