EvEmu
0.8.4
11 September 2021
|
Utility for parsing XML files. More...
#include "XMLParser.h"
Classes | |
class | ElementParser |
This virtual interface must be implemented by all parsers. More... | |
Public Member Functions | |
XMLParser () | |
Primary constructor. More... | |
virtual | ~XMLParser () |
A destructor. More... | |
bool | ParseFile (const char *file) |
Parses file using registered parsers. More... | |
bool | ParseElement (const TiXmlElement *element) const |
Parses element using registered parsers. More... | |
bool | ParseElementChildren (const TiXmlElement *element, size_t max=0) const |
Parses element's children using registered parsers. More... | |
void | AddParser (const char *name, ElementParser *parser) |
Adds a parser. More... | |
void | RemoveParser (const char *name) |
Removes a parser. More... | |
void | ClearParsers () |
Clears all parsers. More... | |
Public Attributes | |
std::unique_ptr< TiXmlDocument > | m_pXML_Document |
Private Attributes | |
std::map< std::string, ElementParser * > | mParsers |
Utility for parsing XML files.
Definition at line 34 of file XMLParser.h.
XMLParser::XMLParser | ( | ) |
|
virtual |
A destructor.
Definition at line 39 of file XMLParser.cpp.
References ClearParsers().
void XMLParser::AddParser | ( | const char * | name, |
ElementParser * | parser | ||
) |
Adds a parser.
[in] | name | Name of element to be parsed by the parser. |
[in] | parser | The parser itself. |
Definition at line 101 of file XMLParser.cpp.
References mParsers.
Referenced by XMLParserEx::AddMemberParser(), and XMLParserEx::AddValueParser().
void XMLParser::ClearParsers | ( | ) |
Clears all parsers.
Definition at line 115 of file XMLParser.cpp.
References mParsers, and SafeDelete().
Referenced by ~XMLParser().
bool XMLParser::ParseElement | ( | const TiXmlElement * | element | ) | const |
Parses element using registered parsers.
[in] | element | Element to be parsed. |
true | Parsing successful. |
false | Error occurred during parsing. |
Definition at line 61 of file XMLParser.cpp.
References mParsers, and sLog.
Referenced by ParseElementChildren(), XMLPacketGen::ParseElementDef(), ParseFile(), ClassDecodeGenerator::ProcessElementDef(), ClassEncodeGenerator::ProcessElementDef(), and ClassHeaderGenerator::ProcessElementDef().
bool XMLParser::ParseElementChildren | ( | const TiXmlElement * | element, |
size_t | max = 0 |
||
) | const |
Parses element's children using registered parsers.
[in] | element | Element the children of which should be parsed. |
[in] | max | The maximal count of children to be processed; 0 means all. |
true | Parsing successful. |
false | Error occurred during parsing. |
Definition at line 72 of file XMLParser.cpp.
References ParseElement(), and sLog.
Referenced by XMLPacketGen::ParseElements(), EVEServerConfig::ProcessAccount(), MarketBotConf::ProcessBotConf(), EVEServerConfig::ProcessBPTimes(), MarketBotConf::ProcessBuy(), EVEServerConfig::ProcessCharacter(), EVEServerConfig::ProcessChat(), EVEServerConfig::ProcessCosmic(), EVEServerConfig::ProcessCrime(), EVEServerConfig::ProcessDatabase(), EVEServerConfig::ProcessDebug(), ClassCloneGenerator::ProcessDictInline(), ClassConstructGenerator::ProcessDictInline(), ClassDestructGenerator::ProcessDictInline(), ClassDumpGenerator::ProcessDictInline(), ClassDecodeGenerator::ProcessDictInline(), ClassEncodeGenerator::ProcessDictInline(), ClassHeaderGenerator::ProcessDictInline(), ClassCloneGenerator::ProcessDictInlineEntry(), ClassConstructGenerator::ProcessDictInlineEntry(), ClassDestructGenerator::ProcessDictInlineEntry(), ClassDumpGenerator::ProcessDictInlineEntry(), ClassHeaderGenerator::ProcessDictInlineEntry(), ClassConstructGenerator::ProcessElementDef(), ClassDestructGenerator::ProcessElementDef(), ClassCloneGenerator::ProcessElementDef(), ClassDumpGenerator::ProcessElementDef(), EVEServerConfig::ProcessEveServer(), EVEServerConfig::ProcessExploring(), EVEServerConfig::ProcessFiles(), ClassConstructGenerator::ProcessListInline(), ClassDestructGenerator::ProcessListInline(), ClassDumpGenerator::ProcessListInline(), ClassCloneGenerator::ProcessListInline(), ClassDecodeGenerator::ProcessListInline(), ClassEncodeGenerator::ProcessListInline(), ClassHeaderGenerator::ProcessListInline(), MarketBotConf::ProcessMain(), EVEServerConfig::ProcessMarket(), EVEServerConfig::ProcessNet(), EVEServerConfig::ProcessNPC(), NPCMarket::ProcessNPCOrders(), ClassConstructGenerator::ProcessObjectInline(), ClassDestructGenerator::ProcessObjectInline(), ClassDumpGenerator::ProcessObjectInline(), ClassCloneGenerator::ProcessObjectInline(), ClassDecodeGenerator::ProcessObjectInline(), ClassEncodeGenerator::ProcessObjectInline(), ClassHeaderGenerator::ProcessObjectInline(), NPCMarket::ProcessOrder(), EVEServerConfig::ProcessRates(), MarketBotConf::ProcessSell(), EVEServerConfig::ProcessServer(), EVEServerConfig::ProcessStandings(), NPCMarket::ProcessStation(), ClassDumpGenerator::ProcessSubStreamInline(), ClassConstructGenerator::ProcessSubStreamInline(), ClassCloneGenerator::ProcessSubStreamInline(), ClassDestructGenerator::ProcessSubStreamInline(), ClassDecodeGenerator::ProcessSubStreamInline(), ClassEncodeGenerator::ProcessSubStreamInline(), ClassHeaderGenerator::ProcessSubStreamInline(), ClassDumpGenerator::ProcessSubStructInline(), ClassDestructGenerator::ProcessSubStructInline(), ClassConstructGenerator::ProcessSubStructInline(), ClassCloneGenerator::ProcessSubStructInline(), ClassDecodeGenerator::ProcessSubStructInline(), ClassEncodeGenerator::ProcessSubStructInline(), ClassHeaderGenerator::ProcessSubStructInline(), EVEServerConfig::ProcessTesting(), EVEServerConfig::ProcessThreads(), ClassConstructGenerator::ProcessTupleInline(), ClassCloneGenerator::ProcessTupleInline(), ClassDumpGenerator::ProcessTupleInline(), ClassDestructGenerator::ProcessTupleInline(), ClassDecodeGenerator::ProcessTupleInline(), ClassHeaderGenerator::ProcessTupleInline(), ClassEncodeGenerator::ProcessTupleInline(), and EVEServerConfig::ProcessWorld().
bool XMLParser::ParseFile | ( | const char * | file | ) |
Parses file using registered parsers.
[in] | file | File to parse. |
true | Parsing successful. |
false | Error occurred during parsing. |
Definition at line 44 of file XMLParser.cpp.
References m_pXML_Document, ParseElement(), and sLog.
Referenced by NPCMarket::CreateNPCMarketFromFile(), and main().
void XMLParser::RemoveParser | ( | const char * | name | ) |
Removes a parser.
[in] | name | Name of element to be parsed by the parser. |
Definition at line 106 of file XMLParser.cpp.
References mParsers, and SafeDelete().
Referenced by EVEServerConfig::ProcessAccount(), MarketBotConf::ProcessBotConf(), EVEServerConfig::ProcessBPTimes(), MarketBotConf::ProcessBuy(), EVEServerConfig::ProcessCharacter(), EVEServerConfig::ProcessChat(), EVEServerConfig::ProcessCosmic(), EVEServerConfig::ProcessCrime(), EVEServerConfig::ProcessDatabase(), EVEServerConfig::ProcessDebug(), EVEServerConfig::ProcessEveServer(), EVEServerConfig::ProcessExploring(), EVEServerConfig::ProcessFiles(), MarketBotConf::ProcessMain(), EVEServerConfig::ProcessMarket(), EVEServerConfig::ProcessNet(), EVEServerConfig::ProcessNPC(), NPCMarket::ProcessNPCOrders(), EVEServerConfig::ProcessRates(), MarketBotConf::ProcessSell(), EVEServerConfig::ProcessServer(), EVEServerConfig::ProcessStandings(), EVEServerConfig::ProcessTesting(), EVEServerConfig::ProcessThreads(), and EVEServerConfig::ProcessWorld().
std::unique_ptr<TiXmlDocument> XMLParser::m_pXML_Document |
Definition at line 113 of file XMLParser.h.
Referenced by ParseFile().
|
private |
Parser storage.
Definition at line 117 of file XMLParser.h.
Referenced by AddParser(), ClearParsers(), ParseElement(), and RemoveParser().