]> git.stg.codes - stg.git/blobdiff - projects/stargazer/settings_impl.cpp
Merge remote-tracking branch 'temp/ticket37' into ticket
[stg.git] / projects / stargazer / settings_impl.cpp
index 169488212f4453327c587f7c81b73280bfdc2947..fa7402ede625a934ce1f181491fbb06e4a135192 100644 (file)
@@ -68,9 +68,7 @@ SETTINGS_IMPL::SETTINGS_IMPL(const std::string & cd)
 }
 //-----------------------------------------------------------------------------
 SETTINGS_IMPL::SETTINGS_IMPL(const SETTINGS_IMPL & rval)
 }
 //-----------------------------------------------------------------------------
 SETTINGS_IMPL::SETTINGS_IMPL(const SETTINGS_IMPL & rval)
-    : SETTINGS(),
-      strError(),
-      modulesPath(rval.modulesPath),
+    : modulesPath(rval.modulesPath),
       dirName(rval.dirName),
       confDir(rval.confDir),
       scriptsDir(rval.scriptsDir),
       dirName(rval.dirName),
       confDir(rval.confDir),
       scriptsDir(rval.scriptsDir),
@@ -101,6 +99,40 @@ SETTINGS_IMPL::SETTINGS_IMPL(const SETTINGS_IMPL & rval)
 {
 }
 //-----------------------------------------------------------------------------
 {
 }
 //-----------------------------------------------------------------------------
+SETTINGS_IMPL & SETTINGS_IMPL::operator=(const SETTINGS_IMPL & rhs)
+{
+    modulesPath = rhs.modulesPath;
+    dirName = rhs.dirName;
+    confDir = rhs.confDir;
+    scriptsDir = rhs.scriptsDir;
+    rules = rhs.rules;
+    logFile = rhs.logFile;
+    pidFile = rhs.pidFile;
+    monitorDir = rhs.monitorDir;
+    scriptParams = rhs.scriptParams;
+    monitoring = rhs.monitoring;
+    detailStatWritePeriod = rhs.detailStatWritePeriod;
+    statWritePeriod = rhs.statWritePeriod;
+    stgExecMsgKey = rhs.stgExecMsgKey;
+    executersNum = rhs.executersNum;
+    fullFee = rhs.fullFee;
+    dayFee = rhs.dayFee;
+    dayResetTraff = rhs.dayResetTraff;
+    spreadFee = rhs.spreadFee;
+    freeMbAllowInet = rhs.freeMbAllowInet;
+    dayFeeIsLastDay = rhs.dayFeeIsLastDay;
+    stopOnError = rhs.stopOnError;
+    writeFreeMbTraffCost = rhs.writeFreeMbTraffCost;
+    showFeeInCash = rhs.showFeeInCash;
+    messageTimeout = rhs.messageTimeout;
+    feeChargeType = rhs.feeChargeType;
+    reconnectOnTariffChange = rhs.reconnectOnTariffChange;
+
+    modulesSettings = rhs.modulesSettings;
+    storeModuleSettings = rhs.storeModuleSettings;
+    return *this;
+}
+//-----------------------------------------------------------------------------
 int SETTINGS_IMPL::ParseModuleSettings(const DOTCONFDocumentNode * node, std::vector<PARAM_VALUE> * params)
 {
 const DOTCONFDocumentNode * childNode;
 int SETTINGS_IMPL::ParseModuleSettings(const DOTCONFDocumentNode * node, std::vector<PARAM_VALUE> * params)
 {
 const DOTCONFDocumentNode * childNode;
@@ -297,6 +329,15 @@ while (node)
             }
         }
 
             }
         }
 
+    if (strcasecmp(node->getName(), "StopOnError") == 0)
+        {
+        if (ParseYesNo(node->getValue(0), &stopOnError) != 0)
+            {
+            strError = "Incorrect StopOnError value: \'" + std::string(node->getValue(0)) + "\'";
+            return -1;
+            }
+        }
+
     if (strcasecmp(node->getName(), "WriteFreeMbTraffCost") == 0)
         {
         if (ParseYesNo(node->getValue(0), &writeFreeMbTraffCost) != 0)
     if (strcasecmp(node->getName(), "WriteFreeMbTraffCost") == 0)
         {
         if (ParseYesNo(node->getValue(0), &writeFreeMbTraffCost) != 0)