X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/954d3cb777db09587845bcc8b2d959d7a48e5bed..5dfab5bea026e33031d041b233c73e196469b4ac:/projects/stargazer/settings_impl.h?ds=sidebyside diff --git a/projects/stargazer/settings_impl.h b/projects/stargazer/settings_impl.h index de27b728..4b73dcd7 100644 --- a/projects/stargazer/settings_impl.h +++ b/projects/stargazer/settings_impl.h @@ -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 @@ -20,132 +14,118 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* - * Date: 27.10.2002 - */ - /* * Author : Boris Mikhailenko */ - /* - $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 #include -#include "stg/settings.h" -#include "stg/common.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(const std::string &); - SETTINGS_IMPL(const SETTINGS_IMPL &); - virtual ~SETTINGS_IMPL() {} - SETTINGS_IMPL & operator=(const 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 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 & GetFilterParamsLog() const { return filterParamsLog; } - - 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 & GetFilterParamsLog() const { return filterParamsLog; } + + const std::string & GetModulesPath() const { return modulesPath; } + const ModuleSettings & GetStoreModuleSettings() const { return storeModuleSettings; } - const std::vector & GetModulesSettings() const + const std::vector & GetModulesSettings() const { return modulesSettings; } - const std::vector & GetScriptParams() const { return scriptParams; } - -private: - - int ParseDetailStatWritePeriod(const std::string & str); - int ParseModuleSettings(const DOTCONFDocumentNode * dirNameNode, std::vector * params); - - static void ErrorCallback(void * data, const char * buf); - - std::string strError; - - //////////settings - std::string modulesPath; - std::vector dirName; - std::string confDir; - std::string scriptsDir; - std::string rules; - std::string logFile; - std::string pidFile; - std::string monitorDir; - std::vector 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 filterParamsLog; - - std::vector modulesSettings; - MODULE_SETTINGS storeModuleSettings; - STG_LOGGER & logger; + const std::vector & GetScriptParams() const { return scriptParams; } + + private: + std::string strError; + + //////////settings + std::string modulesPath; + std::vector dirName; + std::string confDir; + std::string scriptsDir; + std::string rules; + std::string logFile; + std::string pidFile; + std::string monitorDir; + std::vector 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 filterParamsLog; + + std::vector modulesSettings; + ModuleSettings storeModuleSettings; }; //----------------------------------------------------------------------------- -#endif +}