$Author: faust $
*/
+#include "configproto.h"
-#include <unistd.h>
+#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 <unistd.h>
//-----------------------------------------------------------------------------
void ParseXMLStart(void *data, const char *el, const char **attr)
if (cp->currParser)
{
- cp->currParser->SetAnswerList(&cp->answerList);
cp->currParser->SetCurrAdmin(*cp->currAdmin);
cp->currParser->ParseStart(data, el, attr);
}
{
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)
{
if (cp->currParser->ParseEnd(data, el) == 0)
{
+ cp->dataAnswer = cp->currParser->GetAnswer();
cp->currParser = NULL;
}
}
{
if (cp->dataParser[i]->ParseEnd(data, el) == 0)
{
+ cp->dataAnswer = cp->currParser->GetAnswer();
+ cp->currParser = NULL;
break;
}
}
}
//-----------------------------------------------------------------------------
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);
//-----------------------------------------------------------------------------
CONFIGPROTO::~CONFIGPROTO()
{
+for (size_t i = 0; i < dataParser.size(); ++i)
+ delete dataParser[i];
XML_ParserFree(xmlParser);
}
//-----------------------------------------------------------------------------
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);
- }
}
//-----------------------------------------------------------------------------