#include <sys/socket.h>
#include <string>
+#include <list>
+#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;
#define STG_HEADER "SG04"
#define OK_HEADER "OKHD"
#define ERR_LOGINS "ERLS"
//-----------------------------------------------------------------------------
-class CONFIGPROTO
-{
+class CONFIGPROTO {
public:
CONFIGPROTO();
~CONFIGPROTO();
void SetPort(uint16_t port);
- //void SetHostAllow(HOSTALLOW * ha);
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:
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 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;
+ uint16_t port;
+ pthread_t thrReciveSendConf;
+ bool nonstop;
+ int state;
+ ADMIN * currAdmin;
+ STG_LOGGER & WriteServLog;
+
+ int listenSocket;
PARSER_GET_SERVER_INFO parserGetServInfo;
PARSER_CHG_TARIFF parserChgTariff;
ADMINS * admins;
- //USERS * users;
- //TARIFFS * tariffs;
- //BASE_STORE * store;
- //const SETTINGS * settings;
BASE_PARSER * currParser;
- vector<BASE_PARSER*> dataParser;
+ 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
-