X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/321b5c0630ef3b27469a008be31c9fcc131c2c8d..1347f3d1e04bedd1508589173f577673ee2c5554:/projects/stargazer/settings_impl.h diff --git a/projects/stargazer/settings_impl.h b/projects/stargazer/settings_impl.h index 86262808..4a048333 100644 --- a/projects/stargazer/settings_impl.h +++ b/projects/stargazer/settings_impl.h @@ -34,33 +34,34 @@ */ -#ifndef SETTINGS_H -#define SETTINGS_H +#ifndef SETTINGS_IMPL_H +#define SETTINGS_IMPL_H #include #include -#include "common.h" -#include "stg_logger.h" -#include "module_settings.h" +#include "stg/settings.h" +#include "stg/common.h" +#include "stg/logger.h" +#include "stg/module_settings.h" //----------------------------------------------------------------------------- enum DETAIL_STAT_PERIOD { dsPeriod_1, dsPeriod_1_2, dsPeriod_1_4, -dsPeriod_1_6, +dsPeriod_1_6 }; //----------------------------------------------------------------------------- class STG_LOGGER; class DOTCONFDocumentNode; //----------------------------------------------------------------------------- -class SETTINGS { +class SETTINGS_IMPL : public SETTINGS { public: - SETTINGS(); - SETTINGS(const std::string &); - SETTINGS(const SETTINGS &); - virtual ~SETTINGS(); + SETTINGS_IMPL(); + SETTINGS_IMPL(const std::string &); + SETTINGS_IMPL(const SETTINGS_IMPL &); + virtual ~SETTINGS_IMPL() {} int Reload() { return ReadSettings(); } int ReadSettings(); @@ -68,14 +69,14 @@ public: int GetExecMsgKey() const { return stgExecMsgKey; } unsigned GetExecutersNum() const { return executersNum; } - const std::string & GetDirName(int num) const { return dirName[num]; }; + 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; }; + { return detailStatWritePeriod; } unsigned GetStatWritePeriod() const { return statWritePeriod * 60; } unsigned GetDayFee() const { return dayFee; } bool GetFullFee() const { return fullFee; } @@ -84,11 +85,13 @@ public: bool GetFreeMbAllowInet() const { return freeMbAllowInet; } bool GetDayFeeIsLastDay() const { return dayFeeIsLastDay; } bool GetWriteFreeMbTraffCost() const - { return writeFreeMbTraffCost; }; + { 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; } const std::string & GetModulesPath() const { return modulesPath; } const MODULE_SETTINGS & GetStoreModuleSettings() const @@ -98,13 +101,7 @@ public: 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 ParseDetailStatWritePeriod(const std::string & str); int ParseModuleSettings(const DOTCONFDocumentNode * dirNameNode, std::vector * params); static void ErrorCallback(void * data, const char * buf); @@ -113,7 +110,7 @@ private: //////////settings std::string modulesPath; - std::string dirName[DIR_NUM]; + std::vector dirName; std::string confDir; std::string scriptsDir; std::string rules; @@ -134,6 +131,8 @@ private: bool writeFreeMbTraffCost; bool showFeeInCash; unsigned messageTimeout; + unsigned feeChargeType; + bool reconnectOnTariffChange; std::vector modulesSettings; MODULE_SETTINGS storeModuleSettings;