]> git.stg.codes - stg.git/blobdiff - projects/stargazer/settings_impl.h
More std::jthread
[stg.git] / projects / stargazer / settings_impl.h
index c7829b274be1f35912f897b5012bca0e0dd07a90..4b73dcd7f0d5256d1207bf56e6b9b9ea02ecb143 100644 (file)
@@ -1,9 +1,3 @@
- /*
- $Revision: 1.27 $
- $Date: 2010/08/19 13:42:30 $
- $Author: faust $
- */
-
 /*
  *    This program is free software; you can redistribute it and/or modify
  *    it under the terms of the GNU General Public License as published by
  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-/*
- *    Date: 27.10.2002
- */
-
 /*
  *    Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
  */
 
- /*
- $Revision: 1.27 $
- $Date: 2010/08/19 13:42:30 $
- */
-
+#pragma once
 
-#ifndef SETTINGS_IMPL_H
-#define SETTINGS_IMPL_H
+#include "stg/settings.h"
+#include "stg/common.h"
+#include "stg/module_settings.h"
 
 #include <string>
 #include <vector>
 
-#include "stg/settings.h"
-#include "stg/common.h"
-#include "stg/logger.h"
-#include "stg/module_settings.h"
+class DOTCONFDocumentNode;
+
+namespace STG
+{
 
 //-----------------------------------------------------------------------------
 enum DETAIL_STAT_PERIOD {
-dsPeriod_1,
-dsPeriod_1_2,
-dsPeriod_1_4,
-dsPeriod_1_6,
+    dsPeriod_1,
+    dsPeriod_1_2,
+    dsPeriod_1_4,
+    dsPeriod_1_6
 };
 //-----------------------------------------------------------------------------
-class STG_LOGGER;
-class DOTCONFDocumentNode;
-//-----------------------------------------------------------------------------
-class SETTINGS_IMPL : public SETTINGS {
-public:
-    SETTINGS_IMPL();
-    SETTINGS_IMPL(const std::string &);
-    SETTINGS_IMPL(const SETTINGS_IMPL &);
-    virtual ~SETTINGS_IMPL() {}
-    int Reload() { return ReadSettings(); }
-    int ReadSettings();
-
-    std::string GetStrError() const { return strError; }
-
-    int                 GetExecMsgKey() const { return stgExecMsgKey; }
-    unsigned            GetExecutersNum() const { return executersNum; }
-    const std::string & GetDirName(size_t num) const { return dirName[num]; }
-    const std::string & GetConfDir() const { return confDir; }
-    const std::string & GetScriptsDir() const { return scriptsDir; }
-    const std::string & GetRulesFileName() const { return rules; }
-    const std::string & GetLogFileName() const { return logFile; }
-    const std::string & GetPIDFileName() const { return pidFile; }
-    unsigned            GetDetailStatWritePeriod() const 
-        { return detailStatWritePeriod; }
-    unsigned            GetStatWritePeriod() const { return statWritePeriod * 60; }
-    unsigned            GetDayFee() const { return dayFee; }
-    bool                GetFullFee() const { return fullFee; }
-    unsigned            GetDayResetTraff() const { return dayResetTraff; }
-    bool                GetSpreadFee() const { return spreadFee; }
-    bool                GetFreeMbAllowInet() const { return freeMbAllowInet; }
-    bool                GetDayFeeIsLastDay() const { return dayFeeIsLastDay; }
-    bool                GetWriteFreeMbTraffCost() const
-        { return writeFreeMbTraffCost; };
-    bool                GetShowFeeInCash() const { return showFeeInCash; }
-    const std::string & GetMonitorDir() const { return monitorDir; }
-    bool                GetMonitoring() const { return monitoring; }
-    unsigned            GetMessageTimeout() const { return messageTimeout * 3600 * 24; }
-
-    const std::string & GetModulesPath() const { return modulesPath; }
-    const MODULE_SETTINGS & GetStoreModuleSettings() const
+class SettingsImpl : public Settings {
+    public:
+        explicit SettingsImpl(const std::string &);
+
+        SettingsImpl(const SettingsImpl&) = default;
+        SettingsImpl& operator=(const SettingsImpl&) = default;
+        SettingsImpl(SettingsImpl&&) = default;
+        SettingsImpl& operator=(SettingsImpl&&) = default;
+
+        int Reload() { return ReadSettings(); }
+        int ReadSettings();
+
+        std::string GetStrError() const { return strError; }
+
+        int                 GetExecMsgKey() const { return stgExecMsgKey; }
+        unsigned            GetExecutersNum() const { return executersNum; }
+        const std::string & GetDirName(size_t num) const { return dirName[num]; }
+        const std::string & GetConfDir() const { return confDir; }
+        const std::string & GetScriptsDir() const { return scriptsDir; }
+        const std::string & GetRulesFileName() const { return rules; }
+        const std::string & GetLogFileName() const { return logFile; }
+        const std::string & GetPIDFileName() const { return pidFile; }
+        unsigned            GetDetailStatWritePeriod() const
+            { return detailStatWritePeriod; }
+        unsigned            GetStatWritePeriod() const { return statWritePeriod * 60; }
+        unsigned            GetDayFee() const { return dayFee; }
+        bool                GetFullFee() const { return fullFee; }
+        unsigned            GetDayResetTraff() const { return dayResetTraff; }
+        bool                GetSpreadFee() const { return spreadFee; }
+        bool                GetFreeMbAllowInet() const { return freeMbAllowInet; }
+        bool                GetDayFeeIsLastDay() const { return dayFeeIsLastDay; }
+        bool                GetStopOnError() const { return stopOnError; }
+        bool                GetWriteFreeMbTraffCost() const
+            { return writeFreeMbTraffCost; }
+        bool                GetShowFeeInCash() const { return showFeeInCash; }
+        const std::string & GetMonitorDir() const { return monitorDir; }
+        bool                GetMonitoring() const { return monitoring; }
+        unsigned            GetMessageTimeout() const { return messageTimeout * 3600 * 24; }
+        unsigned            GetFeeChargeType() const { return feeChargeType; }
+        bool                GetReconnectOnTariffChange() const { return reconnectOnTariffChange; }
+        bool                GetDisableSessionLog() const { return disableSessionLog; }
+        const std::vector<std::string> & GetFilterParamsLog() const { return filterParamsLog; }
+
+        const std::string & GetModulesPath() const { return modulesPath; }
+        const ModuleSettings & GetStoreModuleSettings() const
         { return storeModuleSettings; }
-    const std::vector<MODULE_SETTINGS> & GetModulesSettings() const
+        const std::vector<ModuleSettings> & GetModulesSettings() const
         { return modulesSettings; }
-
-private:
-
-    int ParseInt(const std::string & value, int * val);
-    int ParseUnsigned(const std::string & value, unsigned * val);
-    int ParseIntInRange(const std::string & value, int min, int max, int * val);
-    int ParseUnsignedInRange(const std::string & value, unsigned min, unsigned max, unsigned * val);
-    int ParseYesNo(const std::string & value, bool * val);
-    int ParseDetailStatWritePeriod(const std::string & detailStatPeriodStr);
-
-    int ParseModuleSettings(const DOTCONFDocumentNode * dirNameNode, std::vector<PARAM_VALUE> * params);
-
-    static void ErrorCallback(void * data, const char * buf);
-
-    std::string strError;
-
-    //////////settings
-    std::string modulesPath;
-    std::vector<std::string> dirName;
-    std::string confDir;
-    std::string        scriptsDir;
-    std::string rules;
-    std::string logFile;
-    std::string pidFile;
-    std::string monitorDir;
-    bool        monitoring;
-    unsigned    detailStatWritePeriod;
-    unsigned    statWritePeriod;
-    int         stgExecMsgKey;
-    unsigned    executersNum;
-    bool        fullFee;
-    unsigned    dayFee;
-    unsigned    dayResetTraff;
-    bool        spreadFee;
-    bool        freeMbAllowInet;
-    bool        dayFeeIsLastDay;
-    bool        writeFreeMbTraffCost;
-    bool        showFeeInCash;
-    unsigned    messageTimeout;
-
-    std::vector<MODULE_SETTINGS> modulesSettings;
-    MODULE_SETTINGS storeModuleSettings;
-
-    STG_LOGGER & logger;
+        const std::vector<std::string> & GetScriptParams() const { return scriptParams; }
+
+    private:
+        std::string strError;
+
+        //////////settings
+        std::string modulesPath;
+        std::vector<std::string> dirName;
+        std::string confDir;
+        std::string scriptsDir;
+        std::string rules;
+        std::string logFile;
+        std::string pidFile;
+        std::string monitorDir;
+        std::vector<std::string> scriptParams;
+        bool        monitoring;
+        unsigned    detailStatWritePeriod;
+        unsigned    statWritePeriod;
+        int         stgExecMsgKey;
+        unsigned    executersNum;
+        bool        fullFee;
+        unsigned    dayFee;
+        unsigned    dayResetTraff;
+        bool        spreadFee;
+        bool        freeMbAllowInet;
+        bool        dayFeeIsLastDay;
+        bool        stopOnError;
+        bool        writeFreeMbTraffCost;
+        bool        showFeeInCash;
+        unsigned    messageTimeout;
+        unsigned    feeChargeType;
+        bool        reconnectOnTariffChange;
+        bool        disableSessionLog;
+        std::vector<std::string> filterParamsLog;
+
+        std::vector<ModuleSettings> modulesSettings;
+        ModuleSettings storeModuleSettings;
 };
 //-----------------------------------------------------------------------------
 
-#endif
+}