/usr/include/tuxcap/XMLParser.h is in libtuxcap-dev 1.4.0.dfsg2-2.1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | #ifndef __XMLPARSER_H__
#define __XMLPARSER_H__
#include "Common.h"
#if 0
#include "PerfTimer.h"
#endif
//struct PFILE;
namespace Sexy
{
class XMLParam
{
public:
std::string mKey;
std::string mValue;
};
typedef std::map<SexyString, SexyString> XMLParamMap;
typedef std::list<XMLParamMap::iterator> XMLParamMapIteratorList;
typedef std::vector<wchar_t> XMLParserBuffer;
class XMLElement
{
public:
enum
{
TYPE_NONE,
TYPE_START,
TYPE_END,
TYPE_ELEMENT,
TYPE_INSTRUCTION,
TYPE_COMMENT
};
public:
int mType;
SexyString mSection;
SexyString mValue;
SexyString mInstruction;
XMLParamMap mAttributes;
XMLParamMapIteratorList mAttributeIteratorList; // stores attribute iterators in their original order
};
class XMLParser
{
protected:
std::string mFileName;
SexyString mErrorText;
int mLineNum;
FILE* mFile;
bool mHasFailed;
bool mAllowComments;
XMLParserBuffer mBufferedText;
SexyString mSection;
bool (XMLParser::*mGetCharFunc)(wchar_t* theChar, bool* error);
bool mForcedEncodingType;
bool mFirstChar;
bool mByteSwap;
protected:
void Fail(const SexyString& theErrorText);
void Init();
bool AddAttribute(XMLElement* theElement, const SexyString& aAttributeKey, const SexyString& aAttributeValue);
bool GetAsciiChar(wchar_t* theChar, bool* error);
bool GetUTF8Char(wchar_t* theChar, bool* error);
bool GetUTF16Char(wchar_t* theChar, bool* error);
bool GetUTF16LEChar(wchar_t* theChar, bool* error);
bool GetUTF16BEChar(wchar_t* theChar, bool* error);
public:
enum XMLEncodingType
{
ASCII,
UTF_8,
UTF_16,
UTF_16_LE,
UTF_16_BE
};
public:
XMLParser();
virtual ~XMLParser();
void SetEncodingType(XMLEncodingType theEncoding);
bool OpenFile(const std::string& theFilename);
void SetStringSource(const std::wstring& theString);
void SetStringSource(const std::string& theString);
bool NextElement(XMLElement* theElement);
SexyString GetErrorText();
int GetCurrentLineNum();
std::string GetFileName();
inline void AllowComments(bool doAllow) { mAllowComments = doAllow; }
bool HasFailed();
bool EndOfFile();
};
};
#endif //__XMLPARSER_H__
|