9 #ifndef TINYXML2_INCLUDED
10 #define TINYXML2_INCLUDED
23 #if defined( _DEBUG ) || defined( DEBUG ) || defined (__DEBUG__)
32 #define TIXMLASSERT( x ) if ( !(x)) { __debugbreak(); } //if ( !(x)) WinDebugBreak()
33 #elif defined (ANDROID_NDK)
34 #include <android/log.h>
35 #define TIXMLASSERT( x ) if ( !(x)) { __android_log_assert( "assert", "grinliz", "ASSERT in '%s' at %d.", __FILE__, __LINE__ ); }
38 #define TIXMLASSERT assert
41 #define TIXMLASSERT( x ) {}
45 #if defined(_MSC_VER) && (_MSC_VER >= 1400 )
54 inline int TIXML_SNPRINTF(
char* buffer,
size_t size,
const char* format, ... ) {
56 va_start( va, format );
57 int result = vsnprintf_s( buffer, size, _TRUNCATE, format, va );
61 #define TIXML_SSCANF sscanf_s
65 #define TIXML_SNPRINTF snprintf
66 #define TIXML_SSCANF sscanf
110 void Set(
char* _start,
char* _end,
int _flags ) {
120 char*
parseText(
char* in,
const char* endTag,
int strFlags );
144 template <
class T,
int INIT>
194 int newAllocated = cap * 2;
195 T* newMem =
new T[newAllocated];
196 memcpy( newMem,
mem,
sizeof(T)*
size );
221 virtual void*
Alloc() = 0;
222 virtual void Free(
void* ) = 0;
236 for(
int i=0; i<
blockPtrs.Size(); ++i ) {
247 Block* block =
new Block();
250 for(
int i=0; i<
COUNT-1; ++i ) {
251 block->chunk[i].next = &block->chunk[i+1];
253 block->chunk[COUNT-1].next = 0;
264 virtual void Free(
void* mem ) {
267 Chunk* chunk = (Chunk*)mem;
268 memset( chunk, 0xfe,
sizeof(Chunk) );
273 printf(
"Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n",
352 inline static bool StringEqual(
const char* p,
const char* q,
int nChar=INT_MAX ) {
357 while( *p && *q && *p == *q && n<nChar ) {
360 if ( (n == nChar) || ( *p == 0 && *q == 0 ) ) {
366 inline static int IsAlphaNum(
unsigned char anyByte ) {
return ( anyByte < 128 ) ? isalnum( anyByte ) : 1; }
367 inline static int IsAlpha(
unsigned char anyByte ) {
return ( anyByte < 128 ) ? isalpha( anyByte ) : 1; }
369 static const char*
readBOM(
const char* p,
bool* hasBOM );
372 static const char*
getCharacterRef(
const char* p,
char* value,
int* length );
376 static void toStr(
int v,
char* buffer,
int bufferSize );
377 static void toStr(
long v,
char* buffer,
int bufferSize );
378 static void toStr(
unsigned v,
char* buffer,
int bufferSize );
379 static void toStr(
bool v,
char* buffer,
int bufferSize );
380 static void toStr(
float v,
char* buffer,
int bufferSize );
381 static void toStr(
double v,
char* buffer,
int bufferSize );
382 static void toStr(
char v,
char* buffer,
int bufferSize );
385 static bool toInt(
const char* str,
int* value );
386 static bool toUnsigned(
const char* str,
unsigned* value );
387 static bool toBool(
const char* str,
bool* value );
388 static bool toFloat(
const char* str,
float* value );
389 static bool toDouble(
const char* str,
double* value );
456 void setValue(
const char* val,
bool staticMem=
false );
816 char*
parseDeep(
char* p,
bool processEntities );
866 const char*
attribute(
const char* name,
const char*
value=0 )
const;
1049 int parse(
const char* xml );
1056 int loadFile(
const char* filename );
1072 int saveFile(
const char* filename );
1159 void setError(
int error,
const char* str1,
const char* str2 );
1382 XMLPrinter( FILE* file=0,
bool compact =
false );
1386 void pushHeader(
bool writeBOM,
bool writeDeclaration );
1401 void pushText(
const char* text,
bool cdata=
false );
1445 void printString(
const char*,
bool restrictedEntitySet );
1446 void print(
const char* format, ... );
1474 #endif // TINYXML2_INCLUDED
virtual XMLElement * ToElement()
Safely cast to an Element, or null.
Definition: tinyxml2.hpp:839
const XMLElement * nextSiblingElement(const char *value=0) const
Get the next (right) sibling element of this node, with an opitionally supplied name.
Definition: tinyxml2.cpp:658
double DoubleAttribute(const char *name) const
See IntAttribute()
Definition: tinyxml2.hpp:879
Definition: tinyxml2.hpp:739
T & operator[](int i)
Definition: tinyxml2.hpp:183
MemPoolT< sizeof(XMLElement) > elementPool
Definition: tinyxml2.hpp:1190
Definition: tinyxml2.hpp:344
const XMLDeclaration * ToDeclaration() const
Definition: tinyxml2.hpp:1324
bool BoolValue() const
Query as a boolean. See IntAttribute()
Definition: tinyxml2.hpp:770
static const char * getCharacterRef(const char *p, char *value, int *length)
Definition: tinyxml2.cpp:310
void SetAttribute(const char *name, double _value)
Sets the named attribute to value.
Definition: tinyxml2.hpp:917
bool Error() const
Return true if there was an error parsing the document.
Definition: tinyxml2.hpp:1162
void setValue(const char *val, bool staticMem=false)
Definition: tinyxml2.cpp:538
virtual ~XMLText()
Definition: tinyxml2.hpp:627
const XMLConstHandle FirstChild() const
Definition: tinyxml2.hpp:1310
const XMLConstHandle LastChild() const
Definition: tinyxml2.hpp:1312
const XMLText * ToText() const
Definition: tinyxml2.hpp:1322
virtual void Free(void *mem)
Definition: tinyxml2.hpp:264
T * Mem()
Definition: tinyxml2.hpp:188
bool firstElement
Definition: tinyxml2.hpp:1449
XMLElement(XMLDocument *doc)
Definition: tinyxml2.cpp:1016
virtual const XMLDeclaration * ToDeclaration() const
Definition: tinyxml2.hpp:440
T * PushArr(int count)
Definition: tinyxml2.hpp:166
Definition: tinyxml2.hpp:1457
virtual XMLDocument * ToDocument()
Safely cast to a Document, or null.
Definition: tinyxml2.hpp:432
virtual const XMLComment * ToComment() const
Definition: tinyxml2.hpp:438
XMLNode * firstChild
Definition: tinyxml2.hpp:581
static void toStr(int v, char *buffer, int bufferSize)
Definition: tinyxml2.cpp:375
virtual void * Alloc()
Definition: tinyxml2.hpp:244
static const int TIXML2_MINOR_VERSION
Definition: tinyxml2.hpp:70
virtual ~MemPool()
Definition: tinyxml2.hpp:218
virtual bool visit(const XMLText &text)
Visit a text node.
Definition: tinyxml2.cpp:1764
Definition: tinyxml2.hpp:1458
T pool[INIT]
Definition: tinyxml2.hpp:204
Definition: tinyxml2.hpp:725
int queryBoolText(bool *_value) const
See QueryIntText()
Definition: tinyxml2.cpp:1084
int textDepth
Definition: tinyxml2.hpp:1452
DynArray< char, 20 > buffer
Definition: tinyxml2.hpp:1464
void PopArr(int count)
Definition: tinyxml2.hpp:176
Definition: tinyxml2.hpp:230
const XMLNode * node
Definition: tinyxml2.hpp:1327
char * parseText(char *in, const char *endTag, int strFlags)
Definition: tinyxml2.cpp:101
static const char * SkipWhiteSpace(const char *p)
Definition: tinyxml2.hpp:349
void pushDeclaration(const char *value)
Definition: tinyxml2.cpp:1717
static const int TIXML2_MAJOR_VERSION
Definition: tinyxml2.hpp:69
const T & operator[](int i) const
Definition: tinyxml2.hpp:184
Definition: tinyxml2.hpp:278
Definition: tinyxml2.hpp:1373
int CurrentAllocs() const
Definition: tinyxml2.hpp:242
void sealElement()
Definition: tinyxml2.cpp:1655
virtual ~XMLAttribute()
Definition: tinyxml2.hpp:811
MemPoolT< sizeof(XMLAttribute) > attributePool
Definition: tinyxml2.hpp:1191
int QueryUnsignedAttribute(const char *name, unsigned int *_value) const
See QueryIntAttribute()
Definition: tinyxml2.hpp:898
XMLElement * newElement(const char *name)
Definition: tinyxml2.cpp:1315
virtual XMLComment * ToComment()
Safely cast to a Comment, or null.
Definition: tinyxml2.hpp:431
Definition: tinyxml2.hpp:735
virtual bool visit(const XMLComment &)
Visit a comment node.
Definition: tinyxml2.hpp:335
XMLAttribute * findOrCreateAttribute(const char *name)
Definition: tinyxml2.cpp:1117
int depth
Definition: tinyxml2.hpp:1451
Definition: tinyxml2.hpp:1001
XMLNode * FirstChild()
Definition: tinyxml2.hpp:467
const XMLElement * previousSiblingElement(const char *value=0) const
Get the previous (left) sibling element of this node, with an opitionally supplied name...
Definition: tinyxml2.cpp:668
XMLConstHandle & operator=(const XMLConstHandle &ref)
Definition: tinyxml2.hpp:1308
void setName(const char *name)
Definition: tinyxml2.cpp:931
const char * getStr()
Definition: tinyxml2.cpp:143
void print(const char *format,...)
Definition: tinyxml2.cpp:1500
virtual const XMLText * ToText() const
Definition: tinyxml2.hpp:437
int loadFile(const char *filename)
Definition: tinyxml2.cpp:1350
virtual XMLNode * shallowClone(XMLDocument *) const
Definition: tinyxml2.hpp:1175
virtual ~XMLVisitor()
Definition: tinyxml2.hpp:318
XMLElement * NextSiblingElement(const char *_value=0)
Definition: tinyxml2.hpp:498
bool CData() const
Returns true if this is a CDATA text element.
Definition: tinyxml2.hpp:618
virtual void Free(void *)=0
Definition: tinyxml2.hpp:1301
int ClosingType() const
Definition: tinyxml2.hpp:1004
void setAttribute(const char *value)
Set the attribute to a string value.
Definition: tinyxml2.cpp:966
virtual bool visitEnter(const XMLDocument &)
Visit a document.
Definition: tinyxml2.hpp:321
const XMLElement * lastChildElement(const char *value=0) const
Definition: tinyxml2.cpp:646
XMLHandle LastChildElement(const char *_value=0)
Get the last child element of this handle.
Definition: tinyxml2.hpp:1271
char * end
Definition: tinyxml2.hpp:135
virtual bool accept(XMLVisitor *visitor) const
Definition: tinyxml2.cpp:1271
XMLDeclaration(XMLDocument *doc)
Definition: tinyxml2.cpp:833
int errorID
Definition: tinyxml2.hpp:1185
const XMLElement * RootElement() const
Definition: tinyxml2.hpp:1097
StrPair value
Definition: tinyxml2.hpp:579
void SetAttribute(const char *name, char _value)
Sets the named attribute to value.
Definition: tinyxml2.hpp:909
virtual XMLUnknown * ToUnknown()
Safely cast to an Unknown, or null.
Definition: tinyxml2.hpp:703
const XMLNode * FirstChild() const
Get the first child node, or null if none exists.
Definition: tinyxml2.hpp:466
Definition: tinyxml2.hpp:99
Definition: tinyxml2.hpp:732
int maxAllocs
Definition: tinyxml2.hpp:291
Definition: tinyxml2.hpp:733
const char * Name() const
The name of the attribute.
Definition: tinyxml2.hpp:758
Chunk * root
Definition: tinyxml2.hpp:287
void initDocument()
Definition: tinyxml2.cpp:1305
char * parseDeep(char *, StrPair *endTag)
Definition: tinyxml2.cpp:877
T Pop()
Definition: tinyxml2.hpp:173
Definition: tinyxml2.hpp:829
int parse(const char *xml)
Definition: tinyxml2.cpp:1428
static char * SkipWhiteSpace(char *p)
Definition: tinyxml2.hpp:350
XMLHandle(XMLNode *_node)
Create a handle from any node (at any depth of the tree.) This can be a null pointer.
Definition: tinyxml2.hpp:1256
double DoubleValue() const
Query as a double. See IntAttribute()
Definition: tinyxml2.hpp:772
Definition: tinyxml2.hpp:283
XMLNode * PreviousSibling()
Definition: tinyxml2.hpp:486
int queryFloatValue(float *value) const
See QueryIntAttribute.
Definition: tinyxml2.cpp:954
const char * getText() const
Definition: tinyxml2.cpp:1055
virtual bool VisitExit(const XMLDocument &)
Visit a document.
Definition: tinyxml2.hpp:323
virtual bool shallowEqual(const XMLNode *compare) const
Definition: tinyxml2.cpp:785
virtual bool accept(XMLVisitor *visitor) const
Definition: tinyxml2.cpp:515
virtual const XMLText * ToText() const
Definition: tinyxml2.hpp:613
MemPoolT< sizeof(XMLComment) > commentPool
Definition: tinyxml2.hpp:1193
int queryIntText(int *_value) const
Definition: tinyxml2.cpp:1062
int Capacity() const
Definition: tinyxml2.hpp:186
#define TIXML_SNPRINTF
Definition: tinyxml2.hpp:65
XMLText & operator=(const XMLText &)
XMLConstHandle(const XMLNode *_node)
Definition: tinyxml2.hpp:1304
virtual bool visit(const XMLUnknown &)
Visit an unknown node.
Definition: tinyxml2.hpp:337
Definition: tinyxml2.hpp:728
virtual const XMLUnknown * ToUnknown() const
Definition: tinyxml2.hpp:441
virtual char * parseDeep(char *, StrPair *)
Definition: tinyxml2.cpp:678
virtual bool visit(const XMLText &)
Visit a text node.
Definition: tinyxml2.hpp:333
virtual XMLNode * shallowClone(XMLDocument *document) const =0
void closeElement()
If streaming, close the Element.
Definition: tinyxml2.cpp:1634
bool entityFlag[ENTITY_RANGE]
Definition: tinyxml2.hpp:1460
virtual bool visit(const XMLDeclaration &)
Visit a declaration.
Definition: tinyxml2.hpp:331
Definition: tinyxml2.hpp:145
const XMLNode * ToNode() const
Definition: tinyxml2.hpp:1320
const XMLConstHandle PreviousSibling() const
Definition: tinyxml2.hpp:1314
virtual XMLText * ToText()
Safely cast to Text, or null.
Definition: tinyxml2.hpp:612
Definition: tinyxml2.hpp:103
Definition: tinyxml2.hpp:101
int IntAttribute(const char *name) const
Definition: tinyxml2.hpp:873
XMLHandle LastChild()
Get the last child of this handle.
Definition: tinyxml2.hpp:1269
char * charBuffer
Definition: tinyxml2.hpp:1188
void SetAttribute(const char *name, bool _value)
Sets the named attribute to value.
Definition: tinyxml2.hpp:915
virtual bool shallowEqual(const XMLNode *compare) const
Definition: tinyxml2.cpp:859
Definition: tinyxml2.hpp:102
XMLDocument(bool processEntities=true)
constructor
Definition: tinyxml2.cpp:1282
XMLNode * Parent()
Definition: tinyxml2.hpp:460
const char * Value() const
The value of the attribute.
Definition: tinyxml2.hpp:759
static bool toUnsigned(const char *str, unsigned *value)
Definition: tinyxml2.cpp:409
Definition: tinyxml2.hpp:808
void SetAttribute(const char *name, int _value)
Sets the named attribute to value.
Definition: tinyxml2.hpp:911
XMLDocument * document
Definition: tinyxml2.hpp:577
#define TIXMLASSERT(x)
Definition: tinyxml2.hpp:41
Definition: tinyxml2.hpp:1033
const char * GetErrorStr2() const
Return a possibly helpful secondary diagnostic location or string.
Definition: tinyxml2.hpp:1168
MemPoolT()
Definition: tinyxml2.hpp:233
const XMLUnknown * ToUnknown() const
Definition: tinyxml2.hpp:1323
XMLHandle & operator=(const XMLHandle &ref)
Assignment.
Definition: tinyxml2.hpp:1262
const XMLConstHandle NextSibling() const
Definition: tinyxml2.hpp:1316
void SetBOM(bool useBOM)
Definition: tinyxml2.hpp:1091
bool ProcessEntities() const
Definition: tinyxml2.hpp:1083
const XMLConstHandle NextSiblingElement(const char *_value=0) const
Definition: tinyxml2.hpp:1317
XMLElement * RootElement()
Definition: tinyxml2.hpp:1096
void SetAttribute(const char *name, unsigned _value)
Sets the named attribute to value.
Definition: tinyxml2.hpp:913
const char * errorStr2
Definition: tinyxml2.hpp:1187
virtual bool accept(XMLVisitor *visitor) const =0
void printError() const
If there is an error, print it to stdout.
Definition: tinyxml2.cpp:1464
XMLAttribute * next
Definition: tinyxml2.hpp:820
Definition: tinyxml2.hpp:721
void SetAttribute(const char *name, const char *_value)
Sets the named attribute to value.
Definition: tinyxml2.hpp:907
void SetAttribute(const char *name, long _value)
Sets the named attribute to value.
Definition: tinyxml2.hpp:919
virtual bool shallowEqual(const XMLNode *compare) const
Definition: tinyxml2.cpp:896
char * start
Definition: tinyxml2.hpp:134
Definition: tinyxml2.hpp:699
int nAllocs
Definition: tinyxml2.hpp:290
Definition: tinyxml2.hpp:1252
Definition: tinyxml2.hpp:730
void deleteChild(XMLNode *node)
Definition: tinyxml2.cpp:571
const XMLNode * Parent() const
Get the parent of this node on the DOM.
Definition: tinyxml2.hpp:459
XMLNode * insertEndChild(XMLNode *addThis)
Definition: tinyxml2.cpp:576
int queryFloatText(float *_value) const
See QueryIntText()
Definition: tinyxml2.cpp:1106
const XMLAttribute * Next() const
The next attribute in the list.
Definition: tinyxml2.hpp:760
void operator=(const XMLAttribute &)
static bool toDouble(const char *str, double *value)
Definition: tinyxml2.cpp:438
XMLUnknown * newUnknown(const char *text)
Definition: tinyxml2.cpp:1343
int queryDoubleText(double *_value) const
See QueryIntText()
Definition: tinyxml2.cpp:1095
int QueryFloatAttribute(const char *name, float *_value) const
See QueryIntAttribute()
Definition: tinyxml2.hpp:904
virtual ~XMLUnknown()
Definition: tinyxml2.cpp:874
void SetName(const char *str, bool staticMem=false)
Set the name of the element.
Definition: tinyxml2.hpp:837
virtual int ItemSize() const
Definition: tinyxml2.hpp:241
void Set(char *_start, char *_end, int _flags)
Definition: tinyxml2.hpp:110
XMLNode * lastChild
Definition: tinyxml2.hpp:582
Definition: tinyxml2.hpp:734
char * parseDeep(char *p, StrPair *endTag)
Definition: tinyxml2.cpp:1211
Definition: tinyxml2.hpp:418
int saveFile(const char *filename)
Definition: tinyxml2.cpp:1404
int IntValue() const
Definition: tinyxml2.hpp:766
Definition: tinyxml2.hpp:92
virtual bool visitEnter(const XMLDocument &)
Visit a document.
Definition: tinyxml2.cpp:1741
char * parseDeep(char *, StrPair *endTag)
Definition: tinyxml2.cpp:841
virtual XMLNode * shallowClone(XMLDocument *document) const
Definition: tinyxml2.cpp:1237
XMLNode * insertAfterChild(XMLNode *afterThis, XMLNode *addThis)
Definition: tinyxml2.cpp:617
void setError(int error, const char *str1, const char *str2)
Definition: tinyxml2.cpp:1458
const char * Value() const
Definition: tinyxml2.hpp:452
XMLDeclaration & operator=(const XMLDeclaration &)
int closingType
Definition: tinyxml2.hpp:1020
void DeleteNode(XMLNode *node)
Definition: tinyxml2.hpp:1157
StrPair value
Definition: tinyxml2.hpp:819
MemPool()
Definition: tinyxml2.hpp:217
Definition: tinyxml2.hpp:729
XMLDeclaration * newDeclaration(const char *text=0)
Definition: tinyxml2.cpp:1336
XMLNode(XMLDocument *)
Definition: tinyxml2.cpp:527
Definition: tinyxml2.hpp:744
XMLHandle NextSiblingElement(const char *_value=0)
Get the next sibling element of this handle.
Definition: tinyxml2.hpp:1279
Definition: tinyxml2.hpp:754
bool BoolAttribute(const char *name) const
See IntAttribute()
Definition: tinyxml2.hpp:877
void openElement(const char *name)
Definition: tinyxml2.cpp:1586
static bool toFloat(const char *str, float *value)
Definition: tinyxml2.cpp:431
char * parseDeep(char *, StrPair *endTag)
Definition: tinyxml2.cpp:754
const XMLConstHandle LastChildElement(const char *_value=0) const
Definition: tinyxml2.hpp:1313
virtual bool VisitExit(const XMLDocument &)
Visit a document.
Definition: tinyxml2.hpp:1420
virtual ~XMLNode()
Definition: tinyxml2.cpp:531
int size
Definition: tinyxml2.hpp:206
char * identify(char *p, XMLNode **node)
Definition: tinyxml2.cpp:445
void pushUnknown(const char *value)
Definition: tinyxml2.cpp:1729
XMLDocument * GetDocument()
Get the XMLDocument that owns this XMLNode.
Definition: tinyxml2.hpp:427
XMLUnknown & operator=(const XMLUnknown &)
const XMLDocument * GetDocument() const
Get the XMLDocument that owns this XMLNode.
Definition: tinyxml2.hpp:425
static void convertUTF32ToUTF8(unsigned long input, char *output, int *length)
Definition: tinyxml2.cpp:228
Definition: tinyxml2.hpp:96
int QueryBoolAttribute(const char *name, bool *_value) const
See QueryIntAttribute()
Definition: tinyxml2.hpp:900
virtual bool visitExit(const XMLElement &element)
Visit an element.
Definition: tinyxml2.cpp:1759
virtual bool shallowEqual(const XMLNode *compare) const =0
void operator=(const XMLElement &)
char * parseDeep(char *p, bool processEntities)
Definition: tinyxml2.cpp:906
Definition: tinyxml2.hpp:214
Definition: tinyxml2.hpp:741
virtual XMLDeclaration * ToDeclaration()
Safely cast to a Declaration, or null.
Definition: tinyxml2.hpp:675
int queryBoolValue(bool *value) const
See QueryIntAttribute.
Definition: tinyxml2.cpp:947
virtual XMLUnknown * ToUnknown()
Safely cast to an Unknown, or null.
Definition: tinyxml2.hpp:434
Definition: tinyxml2.hpp:727
DynArray< Block *, 10 > blockPtrs
Definition: tinyxml2.hpp:286
static bool StringEqual(const char *p, const char *q, int nChar=INT_MAX)
Definition: tinyxml2.hpp:352
void printString(const char *, bool restrictedEntitySet)
Definition: tinyxml2.cpp:1539
~XMLPrinter()
Definition: tinyxml2.hpp:1383
Definition: tinyxml2.hpp:731
unsigned UnsignedAttribute(const char *name) const
See IntAttribute()
Definition: tinyxml2.hpp:875
Definition: tinyxml2.hpp:279
bool processEntities
Definition: tinyxml2.hpp:1184
void deleteChildren()
Definition: tinyxml2.cpp:545
~MemPoolT()
Definition: tinyxml2.hpp:234
XMLElement * FirstChildElement(const char *_value=0)
Definition: tinyxml2.hpp:472
XMLElement * PreviousSiblingElement(const char *_value=0)
Definition: tinyxml2.hpp:490
StrPair()
Definition: tinyxml2.hpp:107
XMLConstHandle(const XMLNode &_node)
Definition: tinyxml2.hpp:1305
virtual const XMLElement * ToElement() const
Definition: tinyxml2.hpp:840
void pushHeader(bool writeBOM, bool writeDeclaration)
Definition: tinyxml2.cpp:1575
XMLComment * newComment(const char *comment)
Definition: tinyxml2.cpp:1322
char * parseAttributes(char *p)
Definition: tinyxml2.cpp:1154
void operator=(const XMLDocument &)
Definition: tinyxml2.hpp:605
XMLConstHandle(const XMLConstHandle &ref)
Definition: tinyxml2.hpp:1306
StrPair name
Definition: tinyxml2.hpp:818
char * parseName(char *in)
Definition: tinyxml2.cpp:119
const XMLNode * PreviousSibling() const
Get the previous (left) sibling node of this node.
Definition: tinyxml2.hpp:485
virtual bool accept(XMLVisitor *visitor) const
Definition: tinyxml2.cpp:901
Definition: tinyxml2.hpp:740
MemPool * memPool
Definition: tinyxml2.hpp:821
virtual bool visitEnter(const XMLElement &, const XMLAttribute *)
Visit an element.
Definition: tinyxml2.hpp:326
const XMLConstHandle FirstChildElement(const char *value=0) const
Definition: tinyxml2.hpp:1311
void SetCData(bool _isCData)
Declare whether this should be CDATA or standard text.
Definition: tinyxml2.hpp:616
virtual const XMLDeclaration * ToDeclaration() const
Definition: tinyxml2.hpp:676
XMLNode * LinkEndChild(XMLNode *addThis)
Definition: tinyxml2.hpp:505
int queryDoubleValue(double *value) const
See QueryIntAttribute.
Definition: tinyxml2.cpp:960
Definition: tinyxml2.hpp:671
FILE * fp
Definition: tinyxml2.hpp:1450
void reset()
Definition: tinyxml2.cpp:83
int ErrorID() const
Return the errorID.
Definition: tinyxml2.hpp:1164
Definition: tinyxml2.hpp:1000
const char * GetErrorStr1() const
Return a possibly helpful diagnostic location or string.
Definition: tinyxml2.hpp:1166
static int IsAlphaNum(unsigned char anyByte)
Definition: tinyxml2.hpp:366
XMLNode * next
Definition: tinyxml2.hpp:585
virtual bool accept(XMLVisitor *visitor) const
Definition: tinyxml2.cpp:790
virtual ~XMLDeclaration()
Definition: tinyxml2.cpp:837
Definition: tinyxml2.hpp:722
Chunk * next
Definition: tinyxml2.hpp:280
const XMLElement * firstChildElement(const char *value=0) const
Definition: tinyxml2.cpp:634
Definition: tinyxml2.hpp:738
friend class XMLBase
Definition: tinyxml2.hpp:831
XMLNode * parent
Definition: tinyxml2.hpp:578
XMLNode * NextSibling()
Definition: tinyxml2.hpp:494
Definition: tinyxml2.hpp:104
XMLNode * ToNode()
Safe cast to XMLNode. This can return null.
Definition: tinyxml2.hpp:1282
void Trace(const char *name)
Definition: tinyxml2.hpp:272
Definition: tinyxml2.hpp:315
XMLHandle NextSibling()
Get the next sibling of this handle.
Definition: tinyxml2.hpp:1277
unsigned UnsignedValue() const
Query as an unsigned integer. See IntAttribute()
Definition: tinyxml2.hpp:768
XMLNode * insertFirstChild(XMLNode *addThis)
Definition: tinyxml2.cpp:596
virtual XMLNode * shallowClone(XMLDocument *document) const
Definition: tinyxml2.cpp:888
virtual bool accept(XMLVisitor *visitor) const
Definition: tinyxml2.cpp:864
MemPoolT< sizeof(XMLText) > textPool
Definition: tinyxml2.hpp:1192
friend class XMLBase
Definition: tinyxml2.hpp:607
int Size() const
Definition: tinyxml2.hpp:185
Definition: tinyxml2.hpp:1002
XMLText(XMLDocument *doc)
Definition: tinyxml2.hpp:626
Definition: tinyxml2.hpp:100
static const int TIXML2_PATCH_VERSION
Definition: tinyxml2.hpp:71
const char * errorStr1
Definition: tinyxml2.hpp:1186
void unlink(XMLNode *child)
Definition: tinyxml2.cpp:555
const XMLElement * ToElement() const
Definition: tinyxml2.hpp:1321
virtual bool shallowEqual(const XMLNode *compare) const
Definition: tinyxml2.cpp:1248
XMLAttribute()
Definition: tinyxml2.hpp:810
MemPool * memPool
Definition: tinyxml2.hpp:588
virtual XMLText * ToText()
Safely cast to Text, or null.
Definition: tinyxml2.hpp:430
void deleteAttribute(const char *name)
Definition: tinyxml2.cpp:1138
void print(XMLPrinter *streamer=0)
Definition: tinyxml2.cpp:1451
int QueryDoubleAttribute(const char *name, double *_value) const
See QueryIntAttribute()
Definition: tinyxml2.hpp:902
bool HasBOM() const
Definition: tinyxml2.hpp:1088
void EnsureCapacity(int cap)
Definition: tinyxml2.hpp:192
int queryUnsignedValue(unsigned int *value) const
See QueryIntAttribute.
Definition: tinyxml2.cpp:941
XMLText * ToText()
Safe cast to XMLText. This can return null.
Definition: tinyxml2.hpp:1286
static bool toInt(const char *str, int *value)
Definition: tinyxml2.cpp:403
XMLText * newText(const char *text)
Definition: tinyxml2.cpp:1329
const XMLNode * LastChild() const
Get the last child node, or null if none exists.
Definition: tinyxml2.hpp:475
static int IsUTF8Continuation(const char p)
Definition: tinyxml2.hpp:365
~DynArray()
Definition: tinyxml2.hpp:154
const T * Mem() const
Definition: tinyxml2.hpp:187
void setStr(const char *str, int flags=0)
Definition: tinyxml2.cpp:92
T * mem
Definition: tinyxml2.hpp:203
XMLAttribute * rootAttribute
Definition: tinyxml2.hpp:1024
XMLNode * LastChild()
Definition: tinyxml2.hpp:476
const char * attribute(const char *name, const char *value=0) const
Definition: tinyxml2.cpp:1046
void pushAttribute(const char *name, const char *value)
If streaming, add an attribute to an open element.
Definition: tinyxml2.cpp:1603
XMLHandle PreviousSibling()
Get the previous sibling of this handle.
Definition: tinyxml2.hpp:1273
XMLDeclaration * ToDeclaration()
Safe cast to XMLDeclaration. This can return null.
Definition: tinyxml2.hpp:1290
static const char * readBOM(const char *p, bool *hasBOM)
Definition: tinyxml2.cpp:216
bool NoChildren() const
Returns true if this node has no children.
Definition: tinyxml2.hpp:463
bool compactMode
Definition: tinyxml2.hpp:1454
virtual const XMLDocument * ToDocument() const
Definition: tinyxml2.hpp:439
int CStrSize() const
Definition: tinyxml2.hpp:1440
XMLElement * LastChildElement(const char *_value=0)
Definition: tinyxml2.hpp:482
~StrPair()
Definition: tinyxml2.cpp:79
const XMLAttribute * FirstAttribute() const
Return the first attribute in the list.
Definition: tinyxml2.hpp:928
int queryIntValue(int *value) const
Definition: tinyxml2.cpp:935
XMLUnknown * ToUnknown()
Safe cast to XMLUnknown. This can return null.
Definition: tinyxml2.hpp:1288
int queryUnsignedText(unsigned *_value) const
See QueryIntText()
Definition: tinyxml2.cpp:1073
const XMLConstHandle PreviousSiblingElement(const char *_value=0) const
Definition: tinyxml2.hpp:1315
XMLUnknown(XMLDocument *doc)
Definition: tinyxml2.cpp:870
Definition: tinyxml2.hpp:724
XMLHandle FirstChild()
Get the first child of this handle.
Definition: tinyxml2.hpp:1265
XMLPrinter(FILE *file=0, bool compact=false)
Definition: tinyxml2.cpp:1481
Definition: tinyxml2.hpp:736
virtual const XMLUnknown * ToUnknown() const
Definition: tinyxml2.hpp:704
Chunk chunk[COUNT]
Definition: tinyxml2.hpp:284
XMLElement * ToElement()
Safe cast to XMLElement. This can return null.
Definition: tinyxml2.hpp:1284
XMLNode & operator=(const XMLNode &)
virtual XMLNode * shallowClone(XMLDocument *document) const
Definition: tinyxml2.cpp:776
virtual XMLNode * shallowClone(XMLDocument *document) const
Definition: tinyxml2.cpp:851
float FloatAttribute(const char *name) const
See IntAttribute()
Definition: tinyxml2.hpp:881
bool Empty() const
Definition: tinyxml2.hpp:182
void Push(T t)
Definition: tinyxml2.hpp:160
bool writeBOM
Definition: tinyxml2.hpp:1183
Definition: tinyxml2.hpp:737
bool isCData
Definition: tinyxml2.hpp:632
DynArray< const char *, 10 > stack
Definition: tinyxml2.hpp:1463
void pushText(const char *text, bool cdata=false)
Add a text node.
Definition: tinyxml2.cpp:1660
bool elementJustOpened
Definition: tinyxml2.hpp:1448
virtual const XMLElement * ToElement() const
Definition: tinyxml2.hpp:436
XMLNode * node
Definition: tinyxml2.hpp:1293
XMLNode * prev
Definition: tinyxml2.hpp:584
virtual XMLDocument * ToDocument()
Safely cast to a Document, or null.
Definition: tinyxml2.hpp:1041
virtual int ItemSize() const =0
void printSpace(int depth)
Definition: tinyxml2.cpp:1533
float FloatValue() const
Query as a float. See IntAttribute()
Definition: tinyxml2.hpp:774
virtual XMLDeclaration * ToDeclaration()
Safely cast to a Declaration, or null.
Definition: tinyxml2.hpp:433
XMLHandle PreviousSiblingElement(const char *_value=0)
Get the previous sibling element of this handle.
Definition: tinyxml2.hpp:1275
int flags
Definition: tinyxml2.hpp:133
virtual bool shallowEqual(const XMLNode *) const
Definition: tinyxml2.hpp:1176
virtual XMLElement * ToElement()
Safely cast to an Element, or null.
Definition: tinyxml2.hpp:429
void pushComment(const char *comment)
Add a comment.
Definition: tinyxml2.cpp:1705
int QueryIntAttribute(const char *name, int *_value) const
Definition: tinyxml2.hpp:896
Definition: tinyxml2.hpp:97
const XMLNode * NextSibling() const
Get the next (right) sibling node of this node.
Definition: tinyxml2.hpp:493
Definition: tinyxml2.hpp:129
Definition: tinyxml2.hpp:128
bool processEntities
Definition: tinyxml2.hpp:1453
const XMLAttribute * findAttribute(const char *name) const
Query a specific attribute in the list.
Definition: tinyxml2.cpp:1037
int currentAllocs
Definition: tinyxml2.hpp:289
bool restrictedEntityFlag[ENTITY_RANGE]
Definition: tinyxml2.hpp:1461
XMLHandle(const XMLHandle &ref)
Copy constructor.
Definition: tinyxml2.hpp:1260
virtual const XMLDocument * ToDocument() const
Definition: tinyxml2.hpp:1042
char mem[SIZE]
Definition: tinyxml2.hpp:281
static bool toBool(const char *str, bool *value)
Definition: tinyxml2.cpp:415
int allocated
Definition: tinyxml2.hpp:205
Definition: tinyxml2.hpp:743
virtual ~XMLElement()
Definition: tinyxml2.cpp:1020
~XMLDocument()
Definition: tinyxml2.cpp:1288
virtual bool visitExit(const XMLElement &)
Visit an element.
Definition: tinyxml2.hpp:328
XMLHandle(XMLNode &_node)
Create a handle from a node.
Definition: tinyxml2.hpp:1258
static int IsAlpha(unsigned char anyByte)
Definition: tinyxml2.hpp:367
bool Empty() const
Definition: tinyxml2.hpp:115
const char * CStr() const
Definition: tinyxml2.hpp:1434
const char * Name() const
Get the name of an element (which is the Value() of the node.)
Definition: tinyxml2.hpp:835
XMLHandle FirstChildElement(const char *value=0)
Get the first child element of this handle.
Definition: tinyxml2.hpp:1267
void SetInternedStr(const char *str)
Definition: tinyxml2.hpp:117