*/
-#ifndef SETTINGS_H
-#define SETTINGS_H
+#ifndef SETTINGS_IMPL_H
+#define SETTINGS_IMPL_H
#include <string>
#include <vector>
-#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 {
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();
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; }
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
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<PARAM_VALUE> * params);
static void ErrorCallback(void * data, const char * buf);
//////////settings
std::string modulesPath;
- std::string dirName[DIR_NUM];
+ std::vector<std::string> dirName;
std::string confDir;
std::string scriptsDir;
std::string rules;
bool writeFreeMbTraffCost;
bool showFeeInCash;
unsigned messageTimeout;
+ unsigned feeChargeType;
+ bool reconnectOnTariffChange;
std::vector<MODULE_SETTINGS> modulesSettings;
MODULE_SETTINGS storeModuleSettings;