X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/7df336e60c959c440b2c330f7a7ca9b0251db2a1..2574a28cbf000603bc31f61593dbf061ff56c1d5:/projects/stargazer/plugins/configuration/sgconfig/configproto.h diff --git a/projects/stargazer/plugins/configuration/sgconfig/configproto.h b/projects/stargazer/plugins/configuration/sgconfig/configproto.h index 6e296836..02452bdd 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/configproto.h +++ b/projects/stargazer/plugins/configuration/sgconfig/configproto.h @@ -19,72 +19,84 @@ * Author : Maxim Mamontov */ -#ifndef CONFIGPROTO_H -#define CONFIGPROTO_H +#pragma once #include "parser.h" #include "stg/module_settings.h" -#include "stg/os_int.h" #include -#include +#include +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +#include +#pragma GCC diagnostic pop +#include #include #include #include -class SETTINGS; -class ADMINS; -class TARIFFS; -class USERS; -class STORE; -class PLUGIN_LOGGER; - namespace STG { +struct Settings; +struct Admins; +class Tariffs; +class Users; +struct Services; +struct Corporations; +struct Store; +class PluginLogger; + class Conn; } class CONFIGPROTO { public: - CONFIGPROTO(PLUGIN_LOGGER & l); + explicit CONFIGPROTO(STG::PluginLogger & l); ~CONFIGPROTO(); - void SetPort(uint16_t port) { m_port = port; } - void SetSettings(const SETTINGS * settings) { m_settings = settings; } - void SetAdmins(ADMINS * admins) { m_admins = admins; } - void SetTariffs(TARIFFS * tariffs) { m_tariffs = tariffs; } - void SetUsers(USERS * users) { m_users = users; } - void SetStore(STORE * store) { m_store = store; } - - int Prepare(); - int Stop(); + void SetPort(uint16_t port) { m_port = port; } + void SetBindAddress(const std::string & address) { m_bindAddress = address; } + void SetSettings(const STG::Settings * settings) { m_settings = settings; } + void SetAdmins(STG::Admins * admins) { m_admins = admins; } + void SetTariffs(STG::Tariffs * tariffs) { m_tariffs = tariffs; } + void SetUsers(STG::Users * users) { m_users = users; } + void SetStore(STG::Store * store) { m_store = store; } + void SetServices(STG::Services * services) { m_services = services; } + void SetCorporations(STG::Corporations * corporations) { m_corporations = corporations; } + + int Prepare(); + int Stop(); const std::string & GetStrError() const { return m_errorStr; } - void Run(); + void Run(std::stop_token token); private: CONFIGPROTO(const CONFIGPROTO & rvalue); CONFIGPROTO & operator=(const CONFIGPROTO & rvalue); - const SETTINGS * m_settings; - ADMINS * m_admins; - TARIFFS * m_tariffs; - USERS * m_users; - STORE * m_store; + const STG::Settings * m_settings; + STG::Admins * m_admins; + STG::Tariffs * m_tariffs; + STG::Users * m_users; + STG::Services * m_services; + STG::Corporations * m_corporations; + STG::Store * m_store; uint16_t m_port; - bool m_running; + std::string m_bindAddress; bool m_stopped; - PLUGIN_LOGGER & m_logger; + STG::PluginLogger & m_logger; int m_listenSocket; std::string m_errorStr; BASE_PARSER::REGISTRY m_registry; - std::vector m_conns; + std::deque m_conns; + + bool Bind(); void RegisterParsers(); @@ -93,8 +105,4 @@ private: void CleanupConns(); void HandleEvents(const fd_set & fds); void AcceptConnection(); - - //void WriteLogAccessFailed(uint32_t ip); }; - -#endif //CONFIGPROTO_H