1 #include "otsdaq/ConfigurationInterface/File_configInterface.h"
7 #include "otsdaq/ConfigurationInterface/ConfigurationHandler.h"
8 #include "otsdaq/Macros/ConfigurationInterfacePluginMacros.h"
9 #include "otsdaq/Macros/CoutMacros.h"
10 #include "otsdaq/MessageFacility/MessageFacility.h"
11 #include "otsdaq/TableCore/TableBase.h"
19 ConfigurationHandler::readXML(configuration, version);
31 return *(versions.rbegin());
47 std::cout << __COUT_HDR_FL__ <<
"ConfigurationDir: " << configDir << std::endl;
52 if((dp = opendir(configDir.c_str())) == 0)
54 __SS__ <<
"ERROR:(" << errno <<
"). Can't open directory: " << configDir
56 __COUT_ERR__ << ss.str();
60 const unsigned char isDir = 0x4;
64 std::string::const_iterator it;
66 std::set<TableVersion> dirNumbers;
68 while((dirp = readdir(dp)) != 0)
70 if(dirp->d_type == isDir && dirp->d_name[0] !=
'.')
72 dirName = dirp->d_name;
76 while(it != dirName.end() && std::isdigit(*it))
79 if(dirName.empty() || it != dirName.end())
81 std::cout << __COUT_HDR_FL__
82 <<
"WARNING: there is a non numeric directory in " << configDir
83 <<
" called " << dirName
84 <<
" please remove it from there since only numeric "
85 "directories are considered."
90 dirNumbers.insert(
TableVersion(strtol(dirp->d_name, 0, 10)));
static std::string writeXML(const TableBase &configuration)
returns the file name
static std::string getXMLDir(const TableBase *configuration)
void fill(TableBase *, TableVersion) const
read configuration from database
std::set< TableVersion > getVersions(const TableBase *) const
find all configuration versions by configuration type
TableVersion findLatestVersion(const TableBase *) const
find the latest configuration version by configuration type
void saveActiveVersion(const TableBase *, bool overwrite=false) const
write configuration to database