]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/configproto.h
Implemented storing services.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / configproto.h
index 6e296836ac8d27730a2b1610fd9ce7564abccacc..e18ae82e9bab096e4bd9caca499d2121f2bdb808 100644 (file)
@@ -28,7 +28,7 @@
 #include "stg/os_int.h"
 
 #include <string>
-#include <vector>
+#include <deque>
 
 #include <sys/select.h>
 #include <sys/types.h>
@@ -38,6 +38,8 @@ class SETTINGS;
 class ADMINS;
 class TARIFFS;
 class USERS;
+class SERVICES;
+class CORPORATIONS;
 class STORE;
 class PLUGIN_LOGGER;
 
@@ -53,17 +55,20 @@ public:
     CONFIGPROTO(PLUGIN_LOGGER & 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 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 SetServices(SERVICES * services) { m_services = services; }
+    void SetCorporations(CORPORATIONS * corporations) { m_corporations = corporations; }
+    void SetStore(STORE * store) { m_store = store; }
+
+    int Prepare();
+    int Stop();
     const std::string & GetStrError() const { return m_errorStr; }
-    void            Run();
+    void Run();
 
 private:
     CONFIGPROTO(const CONFIGPROTO & rvalue);
@@ -73,9 +78,12 @@ private:
     ADMINS *         m_admins;
     TARIFFS *        m_tariffs;
     USERS *          m_users;
+    SERVICES *       m_services;
+    CORPORATIONS *   m_corporations;
     STORE *          m_store;
 
     uint16_t         m_port;
+    std::string      m_bindAddress;
     bool             m_running;
     bool             m_stopped;
     PLUGIN_LOGGER &  m_logger;
@@ -84,7 +92,9 @@ private:
     std::string      m_errorStr;
 
     BASE_PARSER::REGISTRY m_registry;
-    std::vector<STG::Conn *> m_conns;
+    std::deque<STG::Conn *> m_conns;
+
+    bool Bind();
 
     void RegisterParsers();
 
@@ -93,8 +103,6 @@ private:
     void CleanupConns();
     void HandleEvents(const fd_set & fds);
     void AcceptConnection();
-
-    //void WriteLogAccessFailed(uint32_t ip);
 };
 
 #endif //CONFIGPROTO_H