]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/configproto.h
Added COMMAND_FUNCTOR and COMMAND_ACTION.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / configproto.h
index 29369867b56a1605596f0f51f1fd61e3cfca4758..4adba09758afae9345de7104f1e4236160a55de9 100644 (file)
 #ifndef CONFIGPROTO_H
 #define CONFIGPROTO_H
 
-#include <expat.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <string>
+#include "parser_auth_by.h"
+#include "parser_user_info.h"
 
+#include "stg/users.h"
+#include "stg/admins.h"
+#include "stg/tariffs.h"
+#include "stg/logger.h"
 #include "parser.h"
-#include "../../../users.h"
-#include "../../../admins.h"
-#include "../../../tariffs.h"
-#include "stg_logger.h"
 
-using namespace std;
+#include <string>
+#include <list>
+
+#include <expat.h>
+#include <sys/types.h>
+#include <sys/socket.h>
 
 #define  STG_HEADER     "SG04"
 #define  OK_HEADER      "OKHD"
@@ -51,30 +53,30 @@ using namespace std;
 #define  ERR_LOGINS     "ERLS"
 
 //-----------------------------------------------------------------------------
-class CONFIGPROTO
-{
+class CONFIGPROTO {
 public:
-    CONFIGPROTO();
+    CONFIGPROTO(PLUGIN_LOGGER & l);
     ~CONFIGPROTO();
 
-    void            SetPort(uint16_t port);
-    //void            SetHostAllow(HOSTALLOW * ha);
+    void            SetPort(uint16_t p) { port = p; }
     void            SetAdmins(ADMINS * a);
     void            SetUsers(USERS * u);
     void            SetTariffs(TARIFFS * t);
-    void            SetStore(BASE_STORE * s);
+    void            SetStore(STORE * s);
     void            SetStgSettings(const SETTINGS * s);
-    const string &  GetAdminLogin();
-    uint32_t        GetAdminIP();
+    uint32_t        GetAdminIP() const { return adminIP; }
     int             Prepare();
     int             Stop();
-    const string &  GetStrError();
-    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);
@@ -85,22 +87,19 @@ private:
 
     int             ParseCommand();
 
-    list<string>    answerList;
-    list<string>    requestList;
-    uint32_t        adminIP;
-    string          adminLogin;
-    uint16_t        port;
-    pthread_t       thrReciveSendConf;
-    bool            nonstop;
-    int             state;
-    //HOSTALLOW *     hostAllow;
-    ADMIN           currAdmin;
-    STG_LOGGER &    WriteServLog;
-
-    int                 outerSocket;
-    int                 listenSocket;
-    struct sockaddr_in  outerAddr;
-    socklen_t           outerAddrLen;
+    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;
+    PLUGIN_LOGGER &             logger;
+
+    int                         listenSocket;
 
     PARSER_GET_SERVER_INFO      parserGetServInfo;
 
@@ -111,6 +110,8 @@ private:
     PARSER_DEL_USER             parserDelUser;
     PARSER_CHECK_USER           parserCheckUser;
     PARSER_SEND_MESSAGE         parserSendMessage;
+    PARSER_AUTH_BY              parserAuthBy;
+    PARSER_USER_INFO            parserUserInfo;
 
     PARSER_GET_ADMINS           parserGetAdmins;
     PARSER_ADD_ADMIN            parserAddAdmin;
@@ -123,21 +124,16 @@ private:
     PARSER_CHG_TARIFF           parserChgTariff;
 
     ADMINS *                    admins;
-    //USERS *                     users;
-    //TARIFFS *                   tariffs;
-    //BASE_STORE *                store;
-    //const SETTINGS *            settings;
 
     BASE_PARSER *               currParser;
-    vector<BASE_PARSER*>        dataParser;
+    std::vector<BASE_PARSER *>  dataParser;
 
     XML_Parser                  xmlParser;
 
-    string                      errorStr;
+    std::string                 errorStr;
 
     friend void ParseXMLStart(void *data, const char *el, const char **attr);
     friend void ParseXMLEnd(void *data, const char *el);
 };
 //-----------------------------------------------------------------------------
 #endif //CONFIGPROTO_H
-