typedef std::map<std::string, PairsType> SectionsType;
template <typename Iterator>
-struct IniGrammar
+struct IniGrammar
: qi::grammar<Iterator, SectionsType()>
{
IniGrammar()
void SettingsParser::parseFile(const std::string & fileName)
{
std::ifstream in(fileName.c_str());
- if (!in) {
+ if (!in)
throw std::runtime_error("Can't open file");
- }
std::string text;
while(!in.eof()) {
std::string res;
_settings._isDaemon = fieldExists(data, "general", "daemon");
_settings._isDebug = fieldExists(data, "general", "debug");
- if (fieldValue(data, "general", "log_file", res)){
+ if (fieldValue(data, "general", "log_file", res))
_settings._logFile = res;
- }
- if (fieldValue(data, "general", "pid_file", res)){
+ if (fieldValue(data, "general", "pid_file", res))
_settings._PIDFile = res;
- }
- if (fieldValue(data, "sync", "switch_interval", res)){
+ if (fieldValue(data, "sync", "switch_interval", res))
_settings._switchSyncInterval = boost::lexical_cast<time_t>(res);
- }
- if (fieldValue(data, "sync", "info_interval", res)){
+ if (fieldValue(data, "sync", "info_interval", res))
_settings._infoSyncInterval = boost::lexical_cast<time_t>(res);
- }
- if (fieldValue(data, "sync", "up_profile_id", res)){
+ if (fieldValue(data, "sync", "up_profile_id", res))
_settings._upProfileId = boost::lexical_cast<unsigned>(res);
- }
- if (fieldValue(data, "sync", "down_profile_id", res)){
+ if (fieldValue(data, "sync", "down_profile_id", res))
_settings._downProfileId = boost::lexical_cast<unsigned>(res);
- }
- if (fieldValue(data, "sync", "max_acl_per_pdu", res)){
+ if (fieldValue(data, "sync", "max_acl_per_pdu", res))
_settings._maxACLPerPDU = boost::lexical_cast<size_t>(res);
- }
- if (fieldValue(data, "sync", "data_url", res)){
+ if (fieldValue(data, "sync", "data_url", res))
_settings._dataURL = res;
- }
+ if (fieldValue(data, "sync", "script_base", res))
+ _settings._scriptBase = res;
+ _settings._dumpScripts = fieldExists(data, "sync", "dump_scripts");
}