27namespace XMLConfigurationFiles {
34 friend std::ostream&
operator<<(std::ostream& os,
49 m_configuration(configuration.m_configuration),
50 m_parser(m_configuration),
51 m_configurationFileName(configuration.m_configurationFileName)
56 const QString &configurationFileName) :
58 m_parser(m_configuration),
59 m_configurationFileName(configurationFileName)
62 LINFO <<
"XMLConfigurationFileParser creating parser for: "
63 << configurationFileName;
66 if (!file.open(QFile::ReadOnly))
70 throw std::runtime_error(std::string(
"XMLConfigurationFileParser Unable to open ")
76 throw XMLException(std::string(
"XMLConfigurationFileParser Unable to parse ")
105 const QString &configurationFileName) :
107 configurationFileName))
117 return m_d->m_configuration;
121 const std::string& moduleName)
123 auto it = m_d->m_configuration.find(moduleName);
125 if (it == m_d->m_configuration.end())
128 LDEBUG <<
"XMLConfigurationFileParser::getModuleConfiguration no such module"
129 << moduleName <<
"in" << m_d->m_configurationFileName;
130 throw NoSuchModule(std::string(m_d->m_configurationFileName.toStdString())+
":["+moduleName+
"]");
136 const std::string& moduleName,
const std::string& groupName)
142 const std::string& moduleName,
143 const std::string& groupName,
144 const std::string& key)
155 LWARN << nsm.
what() <<
" " << m_d->m_configurationFileName;
157 throw NoSuchModule(std::string(m_d->m_configurationFileName.toUtf8().constData())
159 +
"]["+groupName+
"]["+key+
"]");
165 LWARN << nsg.
what() <<
" " << m_d->m_configurationFileName;
166 throw NoSuchGroup(std::string(m_d->m_configurationFileName.toUtf8().constData())
167 +
":["+moduleName+
"]["
168 +groupName+
"]["+key+
"]");
174 LWARN << nsp.
what() <<
" " << m_d->m_configurationFileName;
175 throw NoSuchParam(std::string(m_d->m_configurationFileName.toUtf8().constData())+
":["
176 +moduleName+
"]["+groupName+
"]["+key+
"]");
185 const std::string& moduleName,
186 const std::string& groupName,
187 const std::string& key)
195 return m_d->m_configurationFileName;
200 return (os << parser.m_d->m_configurationFileName.toUtf8().constData()
201 <<
":" << parser.m_d->m_configuration);
#define FILESREPORTLOGINIT
The instances of this class hold configuration informations of the modules Its design is currently ve...
return a message when a 'group' was not found
return a message when a 'module' is not found
return a message when a 'param' was not found
XmlConfigurationFileReader m_parser
XMLConfigurationFileParserPrivate()=delete
~XMLConfigurationFileParserPrivate()=default
friend std::ostream & operator<<(std::ostream &os, XMLConfigurationFileParser &parser)
ConfigurationStructure m_configuration
QString m_configurationFileName
Parser class for the lima's xml configuration files.
GroupConfigurationStructure & getModuleGroupConfiguration(const std::string &moduleName, const std::string &groupName)
XMLConfigurationFileParser()=delete
std::deque< std::string > & getModuleGroupListValues(const std::string &moduleName, const std::string &groupName, const std::string &key)
~XMLConfigurationFileParser()
std::string & getModuleGroupParamValue(const std::string &moduleName, const std::string &groupName, const std::string &key)
const QString & getConfigurationFileName() const
ModuleConfigurationStructure & getModuleConfiguration(const std::string &moduleName)
ConfigurationStructure & getConfiguration(void)
This is a SAX document handler the configuration files.
QString errorString() const
bool parse(QIODevice *device)
virtual const char * what() const override
Throw this exception when encountering problems with XML files opening or parsing.
originally detectConfigurationStructure.h in detectlibraries
std::ostream & operator<<(std::ostream &os, const ConfigurationStructure &conf)
launch exception related to the configuration file parsing