X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/f1459790fd9627b54b2ff36906c7ba2333c48bf3..e982ee10a3a88a2cb6f623a3f12b1b428df9879c:/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.h?ds=inline diff --git a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.h b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.h index 15ff1291..72a14f21 100644 --- a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.h +++ b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.h @@ -6,51 +6,55 @@ #include #include #include +#include #include #include #include -#include "os_int.h" -#include "base_plugin.h" -#include "admin_conf.h" +#include "stg/os_int.h" +#include "stg/plugin.h" +#include "stg/admin_conf.h" +#include "stg/module_settings.h" +#include "stg/logger.h" #define RPC_CONFIG_VERSION "Stargazer RPC v. 0.2" -extern "C" BASE_PLUGIN * GetPlugin(); - class ADMINS; class TARIFFS; class USERS; -class BASE_STORE; +class STORE; class RPC_CONFIG_SETTINGS { public: RPC_CONFIG_SETTINGS(); - virtual ~RPC_CONFIG_SETTINGS() {}; - const std::string & GetStrError() const { return errorStr; }; + virtual ~RPC_CONFIG_SETTINGS() {} + const std::string & GetStrError() const { return errorStr; } int ParseSettings(const MODULE_SETTINGS & s); - uint16_t GetPort() const { return port; }; - double GetCookieTimeout() const { return cookieTimeout; }; + uint16_t GetPort() const { return port; } + double GetCookieTimeout() const { return cookieTimeout; } + private: - int ParseIntInRange(const std::string & str, - int min, - int max, - int * val); std::string errorStr; - int port; + uint16_t port; double cookieTimeout; }; struct ADMIN_INFO { + ADMIN_INFO() + : admin(), + accessTime(0), + priviledges() + {} + std::string admin; time_t accessTime; PRIV priviledges; }; -class RPC_CONFIG :public BASE_PLUGIN +class RPC_CONFIG : public PLUGIN { public: RPC_CONFIG(); @@ -59,9 +63,8 @@ public: void SetUsers(USERS * u) { users = u; } void SetTariffs(TARIFFS * t) { tariffs = t; } void SetAdmins(ADMINS * a) { admins = a; } - void SetStore(BASE_STORE * s) { store = s; } - void SetTraffcounter(TRAFFCOUNTER *) {} - void SetStgSettings(const SETTINGS * s) { stgSettings = s; } + void SetStore(STORE * s) { store = s; } + void SetStgSettings(const SETTINGS * s); void SetSettings(const MODULE_SETTINGS & s) { settings = s; } int ParseSettings(); @@ -70,10 +73,10 @@ public: int Reload() { return 0; } bool IsRunning() { return running && !stopped; } - const string & GetStrError() const { return errorStr; } - const string GetVersion() const { return RPC_CONFIG_VERSION; } - uint16_t GetStartPosition() const { return 220; } - uint16_t GetStopPosition() const { return 220; } + const std::string & GetStrError() const { return errorStr; } + std::string GetVersion() const { return RPC_CONFIG_VERSION; } + uint16_t GetStartPosition() const { return 20; } + uint16_t GetStopPosition() const { return 20; } bool GetAdminInfo(const std::string & cookie, ADMIN_INFO * info); @@ -83,18 +86,21 @@ public: bool LogoutAdmin(const std::string & cookie); private: + RPC_CONFIG(const RPC_CONFIG & rvalue); + RPC_CONFIG & operator=(const RPC_CONFIG & rvalue); + static void * Run(void *); std::string GetCookie() const; void InitiateRegistry(); - mutable string errorStr; + mutable std::string errorStr; RPC_CONFIG_SETTINGS rpcConfigSettings; USERS * users; ADMINS * admins; TARIFFS * tariffs; - BASE_STORE * store; + STORE * store; MODULE_SETTINGS settings; - const SETTINGS * stgSettings; + int fd; xmlrpc_c::registry rpcRegistry; xmlrpc_c::serverAbyss * rpcServer; bool running; @@ -102,6 +108,9 @@ private: pthread_t tid; std::map cookies; + size_t dayFee; + std::vector dirNames; + PLUGIN_LOGGER logger; }; #endif