#include #include #include "base_plugin.h" #include "base_store.h" #include "configproto.h" //#include "user_ips.h" //#include "../../../users.h" using namespace std; extern "C" BASE_PLUGIN * GetPlugin(); class STG_CONFIG; //----------------------------------------------------------------------------- /*template class CHG_BEFORE_NOTIFIER: public PROPERTY_NOTIFIER_BASE { public: void Notify(const varParamType & oldValue, const varParamType & newValue) { auth->Unauthorize(user); } void SetUser(USER * u) { user = u; } void SetAuthorizaror(const AUTH_AO * a) { auth = a; } private: USER * user; const AUTH_AO * auth; }; //----------------------------------------------------------------------------- template class CHG_AFTER_NOTIFIER: public PROPERTY_NOTIFIER_BASE { public: void Notify(const varParamType & oldValue, const varParamType & newValue) { auth->UpdateUserAuthorization(user); } void SetUser(USER * u) { user = u; } void SetAuthorizaror(const AUTH_AO * a) { auth = a; } private: USER * user; const AUTH_AO * auth; };*/ //----------------------------------------------------------------------------- class STG_CONFIG_SETTINGS { public: STG_CONFIG_SETTINGS(); virtual ~STG_CONFIG_SETTINGS(){}; const string & GetStrError() const; int ParseSettings(const MODULE_SETTINGS & s); uint16_t GetPort(); private: int ParseIntInRange(const string & str, int min, int max, int * val); string errorStr; int port; }; //----------------------------------------------------------------------------- class STG_CONFIG :public BASE_PLUGIN { public: STG_CONFIG(); virtual ~STG_CONFIG(){}; void SetUsers(USERS * u); void SetTariffs(TARIFFS * t); void SetAdmins(ADMINS * a); void SetStore(BASE_STORE * s); void SetTraffcounter(TRAFFCOUNTER *){}; void SetStgSettings(const SETTINGS * s); void SetSettings(const MODULE_SETTINGS & s); int ParseSettings(); int Start(); int Stop(); int Reload() { return 0; }; bool IsRunning(); const string & GetStrError() const; const string GetVersion() const; uint16_t GetStartPosition() const; uint16_t GetStopPosition() const; private: static void * Run(void *); mutable string errorStr; STG_CONFIG_SETTINGS stgConfigSettings; pthread_t thread; bool nonstop; bool isRunning; CONFIGPROTO config; USERS * users; ADMINS * admins; TARIFFS * tariffs; BASE_STORE * store; MODULE_SETTINGS settings; const SETTINGS * stgSettings; }; //-----------------------------------------------------------------------------