X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/d903c02d2bba584ff806ae9d00973fa4418f77b8..afcbfd1a09e22ff4839ba5db42047c96f355506c:/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 b10cc938..f8073575 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/configproto.h +++ b/projects/stargazer/plugins/configuration/sgconfig/configproto.h @@ -22,11 +22,13 @@ #ifndef CONFIGPROTO_H #define CONFIGPROTO_H +#include "parser.h" + #include "stg/module_settings.h" #include "stg/os_int.h" #include -#include +#include #include #include @@ -36,6 +38,7 @@ class SETTINGS; class ADMINS; class TARIFFS; class USERS; +class STORE; class PLUGIN_LOGGER; namespace STG @@ -47,13 +50,16 @@ class Conn; class CONFIGPROTO { public: - CONFIGPROTO(PLUGIN_LOGGER & l); + explicit CONFIGPROTO(PLUGIN_LOGGER & l); + ~CONFIGPROTO(); void SetPort(uint16_t port) { m_port = port; } + void SetBindAddress(const std::string & address) { m_bindAddress = address; } 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(); @@ -68,8 +74,10 @@ private: ADMINS * m_admins; TARIFFS * m_tariffs; USERS * m_users; + STORE * m_store; uint16_t m_port; + std::string m_bindAddress; bool m_running; bool m_stopped; PLUGIN_LOGGER & m_logger; @@ -77,7 +85,12 @@ private: std::string m_errorStr; - std::vector m_conns; + BASE_PARSER::REGISTRY m_registry; + std::deque m_conns; + + bool Bind(); + + void RegisterParsers(); int MaxFD() const; void BuildFDSet(fd_set & fds) const;