X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/c4456f2cae7261f7263e3708ff995bade7da722f..40bd7d8e03fc5972a532844b828b9668a596a321:/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp diff --git a/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp b/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp index 015c2460..eb8fbcde 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp +++ b/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp @@ -28,10 +28,19 @@ $Author: faust $ */ +#include "configproto.h" -#include +#include "parser.h" +#include "parser_auth_by.h" +#include "parser_user_info.h" -#include "configproto.h" +#include "stg/users.h" +#include "stg/admins.h" +#include "stg/tariffs.h" +#include "stg/logger.h" +#include "stg/common.h" + +#include //----------------------------------------------------------------------------- void ParseXMLStart(void *data, const char *el, const char **attr) @@ -40,25 +49,23 @@ CONFIGPROTO * cp = static_cast(data); if (cp->currParser) { - cp->currParser->SetAnswerList(&cp->answerList); - cp->currParser->SetCurrAdmin(*cp->currAdmin); - cp->currParser->ParseStart(data, el, attr); + //cp->currParser->SetCurrAdmin(*cp->currAdmin); + cp->currParser->Start(data, el, attr); } else { for (size_t i = 0; i < cp->dataParser.size(); i++) { - cp->dataParser[i]->SetAnswerList(&cp->answerList); - cp->dataParser[i]->SetCurrAdmin(*cp->currAdmin); - cp->dataParser[i]->Reset(); - if (cp->dataParser[i]->ParseStart(data, el, attr) == 0) + //cp->dataParser[i]->SetCurrAdmin(*cp->currAdmin); + //cp->dataParser[i]->Reset(); + if (cp->dataParser[i]->Start(data, el, attr) == 0) { cp->currParser = cp->dataParser[i]; break; } else { - cp->dataParser[i]->Reset(); + //cp->dataParser[i]->Reset(); } } } @@ -69,8 +76,9 @@ void ParseXMLEnd(void *data, const char *el) CONFIGPROTO * cp = static_cast(data); if (cp->currParser) { - if (cp->currParser->ParseEnd(data, el) == 0) + if (cp->currParser->End(data, el) == 0) { + cp->dataAnswer = cp->currParser->GetAnswer(); cp->currParser = NULL; } } @@ -78,8 +86,10 @@ else { for (size_t i = 0; i < cp->dataParser.size(); i++) { - if (cp->dataParser[i]->ParseEnd(data, el) == 0) + if (cp->dataParser[i]->End(data, el) == 0) { + cp->dataAnswer = cp->currParser->GetAnswer(); + cp->currParser = NULL; break; } } @@ -87,61 +97,37 @@ else } //----------------------------------------------------------------------------- CONFIGPROTO::CONFIGPROTO(PLUGIN_LOGGER & l) - : answerList(), - requestList(), - adminIP(0), - adminLogin(), - adminPassword(), + : adminIP(0), port(0), - thrReciveSendConf(), nonstop(true), state(0), currAdmin(NULL), logger(l), listenSocket(-1), - parserGetServInfo(), - parserGetUsers(), - parserGetUser(), - parserChgUser(), - parserAddUser(), - parserDelUser(), - parserCheckUser(), - parserSendMessage(), - parserAuthBy(), - parserGetAdmins(), - parserAddAdmin(), - parserDelAdmin(), - parserChgAdmin(), - parserGetTariffs(), - parserAddTariff(), - parserDelTariff(), - parserChgTariff(), admins(NULL), - currParser(NULL), - dataParser(), - xmlParser(), - errorStr() + currParser(NULL) { -dataParser.push_back(&parserGetServInfo); - -dataParser.push_back(&parserGetUsers); -dataParser.push_back(&parserGetUser); -dataParser.push_back(&parserChgUser); -dataParser.push_back(&parserAddUser); -dataParser.push_back(&parserDelUser); -dataParser.push_back(&parserCheckUser); -dataParser.push_back(&parserSendMessage); -dataParser.push_back(&parserAuthBy); - -dataParser.push_back(&parserGetTariffs); -dataParser.push_back(&parserAddTariff); -dataParser.push_back(&parserDelTariff); -dataParser.push_back(&parserChgTariff); - -dataParser.push_back(&parserGetAdmins); -dataParser.push_back(&parserChgAdmin); -dataParser.push_back(&parserDelAdmin); -dataParser.push_back(&parserAddAdmin); +/*dataParser.push_back(new PARSER_GET_SERVER_INFO); + +dataParser.push_back(new PARSER_GET_USERS); +dataParser.push_back(new PARSER_GET_USER); +dataParser.push_back(new PARSER_CHG_USER); +dataParser.push_back(new PARSER_ADD_USER); +dataParser.push_back(new PARSER_DEL_USER); +dataParser.push_back(new PARSER_CHECK_USER); +dataParser.push_back(new PARSER_SEND_MESSAGE); +dataParser.push_back(new PARSER_AUTH_BY); +dataParser.push_back(new PARSER_USER_INFO); + +dataParser.push_back(new PARSER_GET_TARIFFS); +dataParser.push_back(new PARSER_ADD_TARIFF); +dataParser.push_back(new PARSER_DEL_TARIFF); +dataParser.push_back(new PARSER_CHG_TARIFF); + +dataParser.push_back(new PARSER_GET_ADMINS); +dataParser.push_back(new PARSER_CHG_ADMIN); +dataParser.push_back(new PARSER_DEL_ADMIN); +dataParser.push_back(new PARSER_ADD_ADMIN);*/ xmlParser = XML_ParserCreate(NULL); @@ -155,6 +141,8 @@ if (!xmlParser) //----------------------------------------------------------------------------- CONFIGPROTO::~CONFIGPROTO() { +for (size_t i = 0; i < dataParser.size(); ++i) + delete dataParser[i]; XML_ParserFree(xmlParser); } //----------------------------------------------------------------------------- @@ -196,7 +184,7 @@ while(nonstop) if (currParser) { printfd(__FILE__, "Parser reset\n"); - currParser->Reset(); + //currParser->Reset(); currParser = NULL; } @@ -212,51 +200,8 @@ while(nonstop) return 0; } //----------------------------------------------------------------------------- -void CONFIGPROTO::SetPort(uint16_t p) -{ -port = p; -} -//----------------------------------------------------------------------------- void CONFIGPROTO::SetAdmins(ADMINS * a) { admins = a; -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetAdmins(a); - } - -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetUsers(USERS * u) -{ -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetUsers(u); - } - -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetTariffs(TARIFFS * t) -{ -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetTariffs(t); - } -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetStore(STORE * s) -{ -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetStore(s); - } -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetStgSettings(const SETTINGS * s) -{ -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetStgSettings(s); - } } //-----------------------------------------------------------------------------