]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/configproto.h
Optimized sending answers in sgconfig.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / configproto.h
index 8c5aa3c59a5a4b900eb17fd2ea32a4acb43bc043..623254ac1a0eee515d0e1e07a81efe4383a11253 100644 (file)
 #ifndef CONFIGPROTO_H
 #define CONFIGPROTO_H
 
-#include <expat.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
 #include <string>
 #include <list>
+#include <vector>
 
-#include "stg/users.h"
-#include "stg/admins.h"
-#include "stg/tariffs.h"
-#include "stg/stg_logger.h"
-#include "parser.h"
+#include "stg/module_settings.h"
+#include "stg/os_int.h"
+
+#include <expat.h>
+#include <pthread.h>
 
 #define  STG_HEADER     "SG04"
 #define  OK_HEADER      "OKHD"
 #define  OK_LOGINS      "OKLS"
 #define  ERR_LOGINS     "ERLS"
 
+class BASE_PARSER;
+class USERS;
+class ADMINS;
+class ADMIN;
+class TARIFFS;
+class PLUGIN_LOGGER;
+class STORE;
+class SETTINGS;
+
 //-----------------------------------------------------------------------------
 class CONFIGPROTO {
 public:
-    CONFIGPROTO();
+    CONFIGPROTO(PLUGIN_LOGGER & l);
     ~CONFIGPROTO();
 
-    void            SetPort(uint16_t port);
+    void            SetPort(uint16_t p) { port = p; }
     void            SetAdmins(ADMINS * a);
     void            SetUsers(USERS * u);
     void            SetTariffs(TARIFFS * t);
     void            SetStore(STORE * s);
     void            SetStgSettings(const SETTINGS * s);
-    uint32_t        GetAdminIP() const;
+    uint32_t        GetAdminIP() const { return adminIP; }
     int             Prepare();
     int             Stop();
-    const std::string & GetStrError() const;
-    static void *   Run(void * a);
+    const std::string & GetStrError() const { return errorStr; }
+    void            Run();
 
 private:
+    CONFIGPROTO(const CONFIGPROTO & rvalue);
+    CONFIGPROTO & operator=(const CONFIGPROTO & rvalue);
+
     int             RecvHdr(int sock);
     int             RecvLogin(int sock);
-    int             SendLoginAnswer(int sock, int err);
+    int             SendLoginAnswer(int sock);
     int             SendHdrAnswer(int sock, int err);
     int             RecvLoginS(int sock);
     int             SendLoginSAnswer(int sock, int err);
     int             RecvData(int sock);
-    int             SendDataAnswer(int sock);
-    void            SendError(const char * text);
+    int             SendDataAnswer(int sock, const std::string & answer);
+    int             SendError(int sock, const std::string & text);
     void            WriteLogAccessFailed(uint32_t ip);
 
     int             ParseCommand();
 
-    std::list<std::string>      answerList;
     std::list<std::string>      requestList;
     uint32_t                    adminIP;
     std::string                 adminLogin;
+    std::string                 adminPassword;
     uint16_t                    port;
     pthread_t                   thrReciveSendConf;
     bool                        nonstop;
     int                         state;
     ADMIN *                     currAdmin;
-    STG_LOGGER &                WriteServLog;
+    PLUGIN_LOGGER &             logger;
 
     int                         listenSocket;
 
-    PARSER_GET_SERVER_INFO      parserGetServInfo;
-
-    PARSER_GET_USERS            parserGetUsers;
-    PARSER_GET_USER             parserGetUser;
-    PARSER_CHG_USER             parserChgUser;
-    PARSER_ADD_USER             parserAddUser;
-    PARSER_DEL_USER             parserDelUser;
-    PARSER_CHECK_USER           parserCheckUser;
-    PARSER_SEND_MESSAGE         parserSendMessage;
-
-    PARSER_GET_ADMINS           parserGetAdmins;
-    PARSER_ADD_ADMIN            parserAddAdmin;
-    PARSER_DEL_ADMIN            parserDelAdmin;
-    PARSER_CHG_ADMIN            parserChgAdmin;
-
-    PARSER_GET_TARIFFS          parserGetTariffs;
-    PARSER_ADD_TARIFF           parserAddTariff;
-    PARSER_DEL_TARIFF           parserDelTariff;
-    PARSER_CHG_TARIFF           parserChgTariff;
-
     ADMINS *                    admins;
 
     BASE_PARSER *               currParser;
-    vector<BASE_PARSER *>       dataParser;
+    std::vector<BASE_PARSER *>  dataParser;
 
     XML_Parser                  xmlParser;