################################\r
# set lib version here\r
\r
-set(GENERIC_LIB_VERSION "7.0.0")\r
+set(GENERIC_LIB_VERSION "7.0.1")\r
set(GENERIC_LIB_SOVERSION "7")\r
\r
################################\r
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
<tr class="separator:a1d033945b42e125d933d6231e4571552"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a57400f816dbe7799ece33615ead9ab76"><td class="memItemLeft" align="right" valign="top"><a id="a57400f816dbe7799ece33615ead9ab76"></a>
int </td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">ErrorLineNum</a> () const</td></tr>
-<tr class="memdesc:a57400f816dbe7799ece33615ead9ab76"><td class="mdescLeft"> </td><td class="mdescRight">Return the line where the error occured, or zero if unknown. <br /></td></tr>
+<tr class="memdesc:a57400f816dbe7799ece33615ead9ab76"><td class="mdescLeft"> </td><td class="mdescRight">Return the line where the error occurred, or zero if unknown. <br /></td></tr>
<tr class="separator:a57400f816dbe7799ece33615ead9ab76"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a65656b0b2cbc822708eb351504178aaf"><td class="memItemLeft" align="right" valign="top"><a id="a65656b0b2cbc822708eb351504178aaf"></a>
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf">Clear</a> ()</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">Parent</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">PreviousSibling</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a872936cae46fb473eb47fec99129fc70">PreviousSiblingElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">QueryAttribute</a>(const char *name, int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute</a>(const char *name, int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">QueryBoolAttribute</a>(const char *name, bool *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736">QueryBoolText</a>(bool *bval) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">QueryDoubleAttribute</a>(const char *name, double *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a120c538c8eead169e635dbc70fb226d8">QueryInt64Text</a>(int64_t *uval) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute</a>(const char *name, int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632">QueryIntText</a>(int *ival) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">QueryUnsignedAttribute</a>(const char *name, unsigned int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1">QueryUnsignedText</a>(unsigned *uval) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a>(const char *name, const char *value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a>(const char *name, int value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">SetAttribute</a>(const char *name, unsigned value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">SetAttribute</a>(const char *name, int64_t value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">SetAttribute</a>(const char *name, bool value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">SetAttribute</a>(const char *name, double value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">SetAttribute</a>(const char *name, float value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">SetName</a>(const char *str, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText</a>(const char *inText)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7">SetText</a>(int value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597">SetText</a>(unsigned value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4">SetText</a>(int64_t value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4">SetText</a>(bool value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e">SetText</a>(double value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a">SetText</a>(float value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(void *userData)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513">SetValue</a>(const char *val, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ac035742d68b0c50c3f676374e59fe750">ShallowClone</a>(XMLDocument *document) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ad9ea913a460b48979bd83cf9871c99f6">ShallowEqual</a>(const XMLNode *compare) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">ToDocument</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">ToElement</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c">UnsignedAttribute</a>(const char *name, unsigned defaultValue=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5">UnsignedText</a>(unsigned defaultValue=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82">Value</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">QueryStringAttribute</a>(const char *name, const char **value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">QueryUnsignedAttribute</a>(const char *name, unsigned int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1">QueryUnsignedText</a>(unsigned *uval) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a>(const char *name, const char *value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a>(const char *name, int value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">SetAttribute</a>(const char *name, unsigned value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">SetAttribute</a>(const char *name, int64_t value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">SetAttribute</a>(const char *name, bool value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">SetAttribute</a>(const char *name, double value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">SetAttribute</a>(const char *name, float value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">SetName</a>(const char *str, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText</a>(const char *inText)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7">SetText</a>(int value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597">SetText</a>(unsigned value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4">SetText</a>(int64_t value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4">SetText</a>(bool value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e">SetText</a>(double value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a">SetText</a>(float value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(void *userData)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513">SetValue</a>(const char *val, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ac035742d68b0c50c3f676374e59fe750">ShallowClone</a>(XMLDocument *document) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ad9ea913a460b48979bd83cf9871c99f6">ShallowEqual</a>(const XMLNode *compare) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">ToDocument</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">ToElement</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c">UnsignedAttribute</a>(const char *name, unsigned defaultValue=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5">UnsignedText</a>(unsigned defaultValue=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82">Value</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
XMLError </td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">QueryFloatAttribute</a> (const char *name, float *value) const</td></tr>
<tr class="memdesc:acd5eeddf6002ef90806af794b9d9a5a5"><td class="mdescLeft"> </td><td class="mdescRight">See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> <br /></td></tr>
<tr class="separator:acd5eeddf6002ef90806af794b9d9a5a5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a042fc30504347b84a56cf863ad528a4f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">QueryAttribute</a> (const char *name, int *value) const</td></tr>
-<tr class="separator:a042fc30504347b84a56cf863ad528a4f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adb8ae765f98d0c5037faec48deea78bc"><td class="memItemLeft" align="right" valign="top"><a id="adb8ae765f98d0c5037faec48deea78bc"></a>
+XMLError </td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">QueryStringAttribute</a> (const char *name, const char **value) const</td></tr>
+<tr class="memdesc:adb8ae765f98d0c5037faec48deea78bc"><td class="mdescLeft"> </td><td class="mdescRight">See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> <br /></td></tr>
+<tr class="separator:adb8ae765f98d0c5037faec48deea78bc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5b7df3bed2b8954eabf227fa204522eb"><td class="memItemLeft" align="right" valign="top">XMLError </td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute</a> (const char *name, int *value) const</td></tr>
+<tr class="separator:a5b7df3bed2b8954eabf227fa204522eb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a11943abf2d0831548c3790dd5d9f119c"><td class="memItemLeft" align="right" valign="top"><a id="a11943abf2d0831548c3790dd5d9f119c"></a>
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a> (const char *name, const char *value)</td></tr>
<tr class="memdesc:a11943abf2d0831548c3790dd5d9f119c"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
</div>
</div>
-<a id="a042fc30504347b84a56cf863ad528a4f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a042fc30504347b84a56cf863ad528a4f">◆ </a></span>QueryAttribute()</h2>
+<a id="a5b7df3bed2b8954eabf227fa204522eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b7df3bed2b8954eabf227fa204522eb">◆ </a></span>QueryAttribute()</h2>
<div class="memitem">
<div class="memproto">
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">int tinyxml2::XMLElement::QueryAttribute </td>
+ <td class="memname">XMLError tinyxml2::XMLElement::QueryAttribute </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>name</em>, </td>
</tr>
</table>
</div><div class="memdoc">
-<p>Given an attribute name, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">QueryAttribute()</a> returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. It is overloaded for the primitive types, and is a generally more convenient replacement of <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> and related functions.</p>
+<p>Given an attribute name, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute()</a> returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. It is overloaded for the primitive types, and is a generally more convenient replacement of <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> and related functions.</p>
<p>If successful, the result of the conversion will be written to 'value'. If not successful, nothing will be written to 'value'. This allows you to provide default value:</p>
<pre class="fragment">int value = 10;
QueryAttribute( "foo", &value ); // if "foo" isn't found, value will still be 10
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">ToNode</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">ToText</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">ToUnknown</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">XMLHandle</a>(XMLNode *node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">XMLHandle</a>(XMLNode &node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">XMLHandle</a>(XMLNode *node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">XMLHandle</a>(XMLNode &node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">XMLHandle</a>(const XMLHandle &ref)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:27 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
<h3><a id="index_q"></a>- q -</h3><ul>
<li>QueryAttribute()
-: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">tinyxml2::XMLElement</a>
+: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">tinyxml2::XMLElement</a>
</li>
<li>QueryBoolAttribute()
: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">tinyxml2::XMLElement</a>
<li>QueryIntValue()
: <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">tinyxml2::XMLAttribute</a>
</li>
+<li>QueryStringAttribute()
+: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">tinyxml2::XMLElement</a>
+</li>
<li>QueryUnsignedAttribute()
: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">tinyxml2::XMLElement</a>
</li>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
<h3><a id="index_q"></a>- q -</h3><ul>
<li>QueryAttribute()
-: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">tinyxml2::XMLElement</a>
+: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">tinyxml2::XMLElement</a>
</li>
<li>QueryBoolAttribute()
: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">tinyxml2::XMLElement</a>
<li>QueryIntValue()
: <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">tinyxml2::XMLAttribute</a>
</li>
+<li>QueryStringAttribute()
+: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">tinyxml2::XMLElement</a>
+</li>
<li>QueryUnsignedAttribute()
: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">tinyxml2::XMLElement</a>
</li>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:27 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
<h2>What it doesn't do. </h2>
<p>TinyXML-2 doesn't parse or use DTDs (Document Type Definitions) or XSLs (eXtensible Stylesheet Language.) There are other parsers out there that are much more fully featured. But they are also much bigger, take longer to set up in your project, have a higher learning curve, and often have a more restrictive license. If you are working with browsers or have more complete XML needs, TinyXML-2 is not the parser for you.</p>
<h2>TinyXML-1 vs. TinyXML-2 </h2>
-<p>TinyXML-2 is now the focus of all development, well tested, and your best choice unless you have a requirement to maintain TinyXML-1 code.</p>
+<p>TinyXML-2 is now the focus of all development, well tested, and your best choice between the two APIs. At this point, unless you are maintaining legacy code, you should choose TinyXML-2.</p>
<p>TinyXML-2 uses a similar API to TinyXML-1 and the same rich test cases. But the implementation of the parser is completely re-written to make it more appropriate for use in a game. It uses less memory, is faster, and uses far fewer memory allocations.</p>
-<p>TinyXML-2 has no requirement for STL, but has also dropped all STL support. All strings are query and set as 'const char*'. This allows the use of internal allocators, and keeps the code much simpler.</p>
-<p>Both parsers:</p>
-<ol type="1">
-<li>Simple to use with similar APIs.</li>
-<li>DOM based parser.</li>
-<li>UTF-8 Unicode support. <a href="http://en.wikipedia.org/wiki/UTF-8">http://en.wikipedia.org/wiki/UTF-8</a></li>
-</ol>
-<p>Advantages of TinyXML-2</p>
-<ol type="1">
-<li>The focus of all future dev.</li>
-<li>Many fewer memory allocation (1/10th to 1/100th), uses less memory (about 40% of TinyXML-1), and faster.</li>
-<li>No STL requirement.</li>
-<li>More modern C++, including a proper namespace.</li>
-<li>Proper and useful handling of whitespace</li>
-</ol>
-<p>Advantages of TinyXML-1</p>
-<ol type="1">
-<li>Support for some C++ STL conventions: streams and strings</li>
-<li>Very mature and well debugged code base.</li>
-</ol>
+<p>TinyXML-2 has no requirement or support for STL. By returning <code>const char*</code> TinyXML-2 can be much more efficient with memory usage. (TinyXML-1 did support and use STL, but consumed much more memory for the DOM representation.)</p>
<h2>Features </h2>
+<h3>Code Page</h3>
+<p>TinyXML-2 uses UTF-8 exclusively when interpreting XML. All XML is assumed to be UTF-8.</p>
+<p>Filenames for loading / saving are passed unchanged to the underlying OS.</p>
<h3>Memory Model</h3>
<p>An XMLDocument is a C++ object like any other, that can be on the stack, or new'd and deleted on the heap.</p>
<p>However, any sub-node of the Document, XMLElement, XMLText, etc, can only be created by calling the appropriate XMLDocument::NewElement, NewText, etc. method. Although you have pointers to these objects, they are still owned by the Document. When the Document is deleted, so are all the nodes it contains.</p>
<p>By default, TinyXML-2 preserves white space in a (hopefully) sane way that is almost compliant with the spec. (TinyXML-1 used a completely different model, much more similar to 'collapse', below.)</p>
<p>As a first step, all newlines / carriage-returns / line-feeds are normalized to a line-feed character, as required by the XML spec.</p>
<p>White space in text is preserved. For example: </p><pre class="fragment"><element> Hello, World</element>
-</pre><p>The leading space before the "Hello" and the double space after the comma are preserved. Line-feeds are preserved, as in this example: </p><pre class="fragment"><element> Hello again,
+</pre><p>The leading space before the "Hello" and the double space after the comma are preserved. Line-feeds are preserved, as in this example: </p><pre class="fragment"><element> Hello again,
World</element>
</pre><p>However, white space between elements is <b>not</b> preserved. Although not strictly compliant, tracking and reporting inter-element space is awkward, and not normally valuable. TinyXML-2 sees these as the same XML: </p><pre class="fragment"><document>
<data>1</data>
</ul>
<p>Note that (currently) there is a performance impact for using COLLAPSE_WHITESPACE. It essentially causes the XML to be parsed twice.</p>
<h4>Error Reporting</h4>
-<p>TinyXML-2 reports the line number of any errors in an XML document that cannot be parsed correctly. In addition, all nodes (elements, declarations, text, comments etc.) and attributes have a line number recorded as they are parsed. This allows an application that performs additional validation of the parsed XML document (e.g. application-implemented DTD validation) to report line number information in it's errors.</p>
+<p>TinyXML-2 reports the line number of any errors in an XML document that cannot be parsed correctly. In addition, all nodes (elements, declarations, text, comments etc.) and attributes have a line number recorded as they are parsed. This allows an application that performs additional validation of the parsed XML document (e.g. application-implemented DTD validation) to report line number information for error messages.</p>
<h3>Entities</h3>
<p>TinyXML-2 recognizes the pre-defined "character entities", meaning special characters. Namely: </p><pre class="fragment">&amp; &
&lt; <
printer.CloseElement();
</pre><h2>Examples </h2>
<h4>Load and parse an XML file.</h4>
-<pre class="fragment">/* ------ Example 1: Load and parse an XML file. ---- */
+<pre class="fragment">/* ------ Example 1: Load and parse an XML file. ---- */
{
XMLDocument doc;
doc.LoadFile( "dream.xml" );
}
</pre><h4>Lookup information.</h4>
-<pre class="fragment">/* ------ Example 2: Lookup information. ---- */
+<pre class="fragment">/* ------ Example 2: Lookup information. ---- */
{
XMLDocument doc;
doc.LoadFile( "dream.xml" );
// Structure of the XML file:
- // - Element "PLAY" the root Element, which is the
+ // - Element "PLAY" the root Element, which is the
// FirstChildElement of the Document
// - - Element "TITLE" child of the root PLAY Element
// - - - Text child of the TITLE Element
<p>And additionally a test file:</p><ul>
<li>xmltest.cpp</li>
</ul>
-<p>Simply compile and run. There is a visual studio 2015 project included, a simple Makefile, an Xcode project, a Code::Blocks project, and a cmake CMakeLists.txt included to help you. The top of tinyxml.h even has a simple g++ command line if you are are *nix and don't want to use a build system.</p>
+<p>Simply compile and run. There is a visual studio 2017 project included, a simple Makefile, an Xcode project, a Code::Blocks project, and a cmake CMakeLists.txt included to help you. The top of tinyxml.h even has a simple g++ command line if you are are Unix/Linuk/BSD and don't want to use a build system.</p>
<h2>Versioning </h2>
<p>TinyXML-2 uses semantic versioning. <a href="http://semver.org/">http://semver.org/</a> Releases are now tagged in github.</p>
<p>Note that the major version will (probably) change fairly rapidly. API changes are fairly common.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
var searchData=
[
- ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f',1,'tinyxml2::XMLElement']]],
+ ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb',1,'tinyxml2::XMLElement']]],
['queryboolattribute',['QueryBoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872',1,'tinyxml2::XMLElement']]],
['querybooltext',['QueryBoolText',['../classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736',1,'tinyxml2::XMLElement']]],
['queryboolvalue',['QueryBoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c',1,'tinyxml2::XMLAttribute']]],
['queryintattribute',['QueryIntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1',1,'tinyxml2::XMLElement']]],
['queryinttext',['QueryIntText',['../classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632',1,'tinyxml2::XMLElement']]],
['queryintvalue',['QueryIntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993',1,'tinyxml2::XMLAttribute']]],
+ ['querystringattribute',['QueryStringAttribute',['../classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc',1,'tinyxml2::XMLElement']]],
['queryunsignedattribute',['QueryUnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f',1,'tinyxml2::XMLElement']]],
['queryunsignedtext',['QueryUnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1',1,'tinyxml2::XMLElement']]],
['queryunsignedvalue',['QueryUnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9',1,'tinyxml2::XMLAttribute']]]
var searchData=
[
- ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f',1,'tinyxml2::XMLElement']]],
+ ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb',1,'tinyxml2::XMLElement']]],
['queryboolattribute',['QueryBoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872',1,'tinyxml2::XMLElement']]],
['querybooltext',['QueryBoolText',['../classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736',1,'tinyxml2::XMLElement']]],
['queryboolvalue',['QueryBoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c',1,'tinyxml2::XMLAttribute']]],
['queryintattribute',['QueryIntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1',1,'tinyxml2::XMLElement']]],
['queryinttext',['QueryIntText',['../classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632',1,'tinyxml2::XMLElement']]],
['queryintvalue',['QueryIntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993',1,'tinyxml2::XMLAttribute']]],
+ ['querystringattribute',['QueryStringAttribute',['../classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc',1,'tinyxml2::XMLElement']]],
['queryunsignedattribute',['QueryUnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f',1,'tinyxml2::XMLElement']]],
['queryunsignedtext',['QueryUnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1',1,'tinyxml2::XMLElement']]],
['queryunsignedvalue',['QueryUnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9',1,'tinyxml2::XMLAttribute']]]
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
-  <span id="projectnumber">6.0.0</span>
+  <span id="projectnumber">7.0.0</span>
</div>
</td>
</tr>
<div class="title">tinyxml2.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">Original code by Lee Thomason (www.grinninglizard.com)</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">This software is provided 'as-is', without any express or implied</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">warranty. In no event will the authors be held liable for any</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">damages arising from the use of this software.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">Permission is granted to anyone to use this software for any</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">purpose, including commercial applications, and to alter it and</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">redistribute it freely, subject to the following restrictions:</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"></span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">1. The origin of this software must not be misrepresented; you must</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">not claim that you wrote the original software. If you use this</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">software in a product, an acknowledgment in the product documentation</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">would be appreciated but is not required.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">2. Altered source versions must be plainly marked as such, and</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">must not be misrepresented as being the original software.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">3. This notice may not be removed or altered from any source</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">distribution.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">*/</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef TINYXML2_INCLUDED</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define TINYXML2_INCLUDED</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># include <ctype.h></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># include <limits.h></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># include <stdio.h></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># include <stdlib.h></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># include <string.h></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># if defined(__PS3__)</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># include <stddef.h></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># include <cctype></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># include <climits></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># include <cstdio></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"># include <cstdlib></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"># include <cstring></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> TODO: intern strings instead of allocation.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">/*</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> gcc:</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> g++ -Wall -DDEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"></span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> Formatting, Artistic Style:</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">*/</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#if defined( _DEBUG ) || defined (__DEBUG__)</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># ifndef DEBUG</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># define DEBUG</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># pragma warning(push)</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># pragma warning(disable: 4251)</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#ifdef _WIN32</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"># ifdef TINYXML2_EXPORT</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># define TINYXML2_LIB __declspec(dllexport)</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># elif defined(TINYXML2_IMPORT)</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"># define TINYXML2_LIB __declspec(dllimport)</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># define TINYXML2_LIB</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#elif __GNUC__ >= 4</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># define TINYXML2_LIB __attribute__((visibility("default")))</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"># define TINYXML2_LIB</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#if defined(DEBUG)</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># if defined(_MSC_VER)</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"># // "(void)0," is for suppressing C4127 warning in "assert(false)", "assert(true)" and the like</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"># define TIXMLASSERT( x ) if ( !((void)0,(x))) { __debugbreak(); }</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"># elif defined (ANDROID_NDK)</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"># include <android/log.h></span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># define TIXMLASSERT( x ) if ( !(x)) { __android_log_assert( "assert", "grinliz", "ASSERT in '%s' at %d.", __FILE__, __LINE__ ); }</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># include <assert.h></span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># define TIXMLASSERT assert</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"># define TIXMLASSERT( x ) {}</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">/* Versioning, past 1.0.14:</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> http://semver.org/</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">*/</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_MAJOR_VERSION = 6;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_MINOR_VERSION = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_PATCH_VERSION = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">namespace </span><a class="code" href="namespacetinyxml2.html">tinyxml2</a></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">class </span>XMLDocument;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">class </span>XMLElement;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">class </span>XMLAttribute;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">class </span>XMLComment;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">class </span>XMLText;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">class </span>XMLDeclaration;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">class </span>XMLUnknown;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">class </span>XMLPrinter;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">/*</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> A class that wraps strings. Normally stores the start and end</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> pointers into the XML file itself, and will apply normalization</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> and entity translation if actually read. Can also store (and memory</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> manage) a traditional char[]</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">*/</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">class </span>StrPair</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">enum</span> {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  NEEDS_ENTITY_PROCESSING = 0x01,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  NEEDS_NEWLINE_NORMALIZATION = 0x02,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  NEEDS_WHITESPACE_COLLAPSING = 0x04,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  TEXT_ELEMENT = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  TEXT_ELEMENT_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  ATTRIBUTE_NAME = 0,</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  ATTRIBUTE_VALUE = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  ATTRIBUTE_VALUE_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  COMMENT = NEEDS_NEWLINE_NORMALIZATION</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  };</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  StrPair() : _flags( 0 ), _start( 0 ), _end( 0 ) {}</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  ~StrPair();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordtype">void</span> Set( <span class="keywordtype">char</span>* start, <span class="keywordtype">char</span>* end, <span class="keywordtype">int</span> flags ) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  TIXMLASSERT( start );</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  TIXMLASSERT( end );</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  Reset();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  _start = start;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  _end = end;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  _flags = flags | NEEDS_FLUSH;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* GetStr();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordtype">bool</span> Empty()<span class="keyword"> const </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> _start == _end;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">void</span> SetInternedStr( <span class="keyword">const</span> <span class="keywordtype">char</span>* str ) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  Reset();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  _start = <span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(str);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordtype">void</span> SetStr( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">int</span> flags=0 );</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordtype">char</span>* ParseText( <span class="keywordtype">char</span>* in, <span class="keyword">const</span> <span class="keywordtype">char</span>* endTag, <span class="keywordtype">int</span> strFlags, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">char</span>* ParseName( <span class="keywordtype">char</span>* in );</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">void</span> TransferTo( StrPair* other );</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">void</span> Reset();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">void</span> CollapseWhitespace();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">enum</span> {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  NEEDS_FLUSH = 0x100,</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  NEEDS_DELETE = 0x200</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  };</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">int</span> _flags;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">char</span>* _start;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">char</span>* _end;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  StrPair( <span class="keyword">const</span> StrPair& other ); <span class="comment">// not supported</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordtype">void</span> operator=( StrPair& other ); <span class="comment">// not supported, use TransferTo()</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> };</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">/*</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment"> A dynamic array of Plain Old Data. Doesn't support constructors, etc.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment"> Has a small initial memory pool, so that low or no usage will not</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment"> cause a call to new/delete</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">*/</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> INITIAL_SIZE></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">class </span>DynArray</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  DynArray() :</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  _mem( _pool ),</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  _allocated( INITIAL_SIZE ),</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  _size( 0 )</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  ~DynArray() {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> ( _mem != _pool ) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">delete</span> [] _mem;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">void</span> Clear() {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  _size = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordtype">void</span> Push( T t ) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  TIXMLASSERT( _size < INT_MAX );</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  EnsureCapacity( _size+1 );</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  _mem[_size] = t;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  ++_size;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  T* PushArr( <span class="keywordtype">int</span> count ) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  TIXMLASSERT( count >= 0 );</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  TIXMLASSERT( _size <= INT_MAX - count );</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  EnsureCapacity( _size+count );</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  T* ret = &_mem[_size];</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  _size += count;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  T Pop() {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  TIXMLASSERT( _size > 0 );</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  --_size;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">return</span> _mem[_size];</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">void</span> PopArr( <span class="keywordtype">int</span> count ) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  TIXMLASSERT( _size >= count );</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  _size -= count;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordtype">bool</span> Empty()<span class="keyword"> const </span>{</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">return</span> _size == 0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  T& operator[](<span class="keywordtype">int</span> i) {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  TIXMLASSERT( i>= 0 && i < _size );</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> _mem[i];</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keyword">const</span> T& operator[](<span class="keywordtype">int</span> i)<span class="keyword"> const </span>{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  TIXMLASSERT( i>= 0 && i < _size );</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">return</span> _mem[i];</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">const</span> T& PeekTop()<span class="keyword"> const </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  TIXMLASSERT( _size > 0 );</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">return</span> _mem[ _size - 1];</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordtype">int</span> Size()<span class="keyword"> const </span>{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  TIXMLASSERT( _size >= 0 );</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">return</span> _size;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordtype">int</span> Capacity()<span class="keyword"> const </span>{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  TIXMLASSERT( _allocated >= INITIAL_SIZE );</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">return</span> _allocated;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordtype">void</span> SwapRemove(<span class="keywordtype">int</span> i) {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  TIXMLASSERT(i >= 0 && i < _size);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  TIXMLASSERT(_size > 0);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  _mem[i] = _mem[_size - 1];</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  --_size;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keyword">const</span> T* Mem()<span class="keyword"> const </span>{</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  TIXMLASSERT( _mem );</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">return</span> _mem;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  T* Mem() {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  TIXMLASSERT( _mem );</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> _mem;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  DynArray( <span class="keyword">const</span> DynArray& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> DynArray& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">void</span> EnsureCapacity( <span class="keywordtype">int</span> cap ) {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  TIXMLASSERT( cap > 0 );</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span> ( cap > _allocated ) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  TIXMLASSERT( cap <= INT_MAX / 2 );</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordtype">int</span> newAllocated = cap * 2;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  T* newMem = <span class="keyword">new</span> T[newAllocated];</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  TIXMLASSERT( newAllocated >= _size );</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  memcpy( newMem, _mem, <span class="keyword">sizeof</span>(T)*_size ); <span class="comment">// warning: not using constructors, only works for PODs</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">if</span> ( _mem != _pool ) {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">delete</span> [] _mem;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  _mem = newMem;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  _allocated = newAllocated;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  T* _mem;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  T _pool[INITIAL_SIZE];</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">int</span> _allocated; <span class="comment">// objects allocated</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordtype">int</span> _size; <span class="comment">// number objects in use</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> };</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment">/*</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment"> Parent virtual class of a pool for fast allocation</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment"> and deallocation of objects.</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment">*/</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keyword">class </span>MemPool</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  MemPool() {}</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">virtual</span> ~MemPool() {}</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> ItemSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span>* Alloc() = 0;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Free( <span class="keywordtype">void</span>* ) = 0;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetTracked() = 0;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Clear() = 0;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> };</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment">/*</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment"> Template child class to create pools of the correct type.</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment">*/</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keyword">template</span>< <span class="keywordtype">int</span> ITEM_SIZE ></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword">class </span>MemPoolT : <span class="keyword">public</span> MemPool</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  MemPoolT() : _blockPtrs(), _root(0), _currentAllocs(0), _nAllocs(0), _maxAllocs(0), _nUntracked(0) {}</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  ~MemPoolT() {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  Clear();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordtype">void</span> Clear() {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// Delete the blocks.</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">while</span>( !_blockPtrs.Empty()) {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  Block* lastBlock = _blockPtrs.Pop();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keyword">delete</span> lastBlock;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  _root = 0;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  _currentAllocs = 0;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  _nAllocs = 0;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  _maxAllocs = 0;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  _nUntracked = 0;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> ItemSize()<span class="keyword"> const </span>{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> ITEM_SIZE;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordtype">int</span> CurrentAllocs()<span class="keyword"> const </span>{</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">return</span> _currentAllocs;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span>* Alloc() {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">if</span> ( !_root ) {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">// Need a new block.</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  Block* block = <span class="keyword">new</span> Block();</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  _blockPtrs.Push( block );</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  Item* blockItems = block->items;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i < ITEMS_PER_BLOCK - 1; ++i ) {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  blockItems[i].next = &(blockItems[i + 1]);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  blockItems[ITEMS_PER_BLOCK - 1].next = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  _root = blockItems;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  Item* <span class="keyword">const</span> result = _root;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  TIXMLASSERT( result != 0 );</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  _root = _root->next;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  ++_currentAllocs;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">if</span> ( _currentAllocs > _maxAllocs ) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  _maxAllocs = _currentAllocs;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  ++_nAllocs;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  ++_nUntracked;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Free( <span class="keywordtype">void</span>* mem ) {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">if</span> ( !mem ) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  --_currentAllocs;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  Item* item = <span class="keyword">static_cast<</span>Item*<span class="keyword">></span>( mem );</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor">#ifdef DEBUG</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  memset( item, 0xfe, <span class="keyword">sizeof</span>( *item ) );</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  item->next = _root;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  _root = item;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordtype">void</span> Trace( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  printf( <span class="stringliteral">"Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n"</span>,</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  name, _maxAllocs, _maxAllocs * ITEM_SIZE / 1024, _currentAllocs,</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  ITEM_SIZE, _nAllocs, _blockPtrs.Size() );</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordtype">void</span> SetTracked() {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  --_nUntracked;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordtype">int</span> Untracked()<span class="keyword"> const </span>{</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> _nUntracked;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="comment">// This number is perf sensitive. 4k seems like a good tradeoff on my machine.</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="comment">// The test file is large, 170k.</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="comment">// Release: VS2010 gcc(no opt)</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="comment">// 1k: 4000</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="comment">// 2k: 4000</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="comment">// 4k: 3900 21000</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="comment">// 16k: 5200</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="comment">// 32k: 4300</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="comment">// 64k: 4000 21000</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="comment">// Declared public because some compilers do not accept to use ITEMS_PER_BLOCK</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">// in private part if ITEMS_PER_BLOCK is private</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">enum</span> { ITEMS_PER_BLOCK = (4 * 1024) / ITEM_SIZE };</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  MemPoolT( <span class="keyword">const</span> MemPoolT& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> MemPoolT& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keyword">union </span>Item {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  Item* next;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordtype">char</span> itemData[ITEM_SIZE];</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  };</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keyword">struct </span>Block {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  Item items[ITEMS_PER_BLOCK];</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  };</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  DynArray< Block*, 10 > _blockPtrs;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  Item* _root;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordtype">int</span> _currentAllocs;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordtype">int</span> _nAllocs;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordtype">int</span> _maxAllocs;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordtype">int</span> _nUntracked;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> };</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html"> 468</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>() {}</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d"> 474</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">VisitEnter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& <span class="comment">/*doc*/</span> ) {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  }</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086"> 478</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& <span class="comment">/*doc*/</span> ) {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5"> 483</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">VisitEnter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& <span class="comment">/*element*/</span>, <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <span class="comment">/*firstAttribute*/</span> ) {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div><div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6"> 487</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& <span class="comment">/*element*/</span> ) {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a"> 492</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& <span class="comment">/*declaration*/</span> ) {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b"> 496</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& <span class="comment">/*text*/</span> ) {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  }</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7"> 500</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& <span class="comment">/*comment*/</span> ) {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  }</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292"> 504</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& <span class="comment">/*unknown*/</span> ) {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> };</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="comment">// WARNING: must match XMLDocument::_errorNames[]</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="keyword">enum</span> XMLError {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  XML_SUCCESS = 0,</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  XML_NO_ATTRIBUTE,</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  XML_WRONG_ATTRIBUTE_TYPE,</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  XML_ERROR_FILE_NOT_FOUND,</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  XML_ERROR_FILE_COULD_NOT_BE_OPENED,</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  XML_ERROR_FILE_READ_ERROR,</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  UNUSED_XML_ERROR_ELEMENT_MISMATCH, <span class="comment">// remove at next major version</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  XML_ERROR_PARSING_ELEMENT,</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  XML_ERROR_PARSING_ATTRIBUTE,</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  UNUSED_XML_ERROR_IDENTIFYING_TAG, <span class="comment">// remove at next major version</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  XML_ERROR_PARSING_TEXT,</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  XML_ERROR_PARSING_CDATA,</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  XML_ERROR_PARSING_COMMENT,</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  XML_ERROR_PARSING_DECLARATION,</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  XML_ERROR_PARSING_UNKNOWN,</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  XML_ERROR_EMPTY_DOCUMENT,</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  XML_ERROR_MISMATCHED_ELEMENT,</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  XML_ERROR_PARSING,</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  XML_CAN_NOT_CONVERT_TEXT,</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  XML_NO_TEXT_NODE,</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  XML_ERROR_COUNT</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> };</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="comment">/*</span></div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="comment"> Utility functionality.</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="comment">*/</span></div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keyword">class </span>TINYXML2_LIB XMLUtil</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* SkipWhiteSpace( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr ) {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  TIXMLASSERT( p );</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">while</span>( IsWhiteSpace(*p) ) {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">if</span> (curLineNumPtr && *p == <span class="charliteral">'\n'</span>) {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  ++(*curLineNumPtr);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  ++p;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  TIXMLASSERT( p );</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  }</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keyword">static</span> <span class="keywordtype">char</span>* SkipWhiteSpace( <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr ) {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>( SkipWhiteSpace( const_cast<const char*>(p), curLineNumPtr ) );</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="comment">// Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't</span></div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="comment">// correct, but simple, and usually works.</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> IsWhiteSpace( <span class="keywordtype">char</span> p ) {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">return</span> !IsUTF8Continuation(p) && isspace( static_cast<unsigned char>(p) );</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  </div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsNameStartChar( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ch ) {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">if</span> ( ch >= 128 ) {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="comment">// This is a heuristic guess in attempt to not implement Unicode-aware isalpha()</span></div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">if</span> ( isalpha( ch ) ) {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">return</span> ch == <span class="charliteral">':'</span> || ch == <span class="charliteral">'_'</span>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  }</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  </div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsNameChar( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ch ) {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">return</span> IsNameStartChar( ch )</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  || isdigit( ch )</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  || ch == <span class="charliteral">'.'</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  || ch == <span class="charliteral">'-'</span>;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  }</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> StringEqual( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keyword">const</span> <span class="keywordtype">char</span>* q, <span class="keywordtype">int</span> nChar=INT_MAX ) {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">if</span> ( p == q ) {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  TIXMLASSERT( p );</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  TIXMLASSERT( q );</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  TIXMLASSERT( nChar >= 0 );</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">return</span> strncmp( p, q, nChar ) == 0;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  </div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsUTF8Continuation( <span class="keywordtype">char</span> p ) {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">return</span> ( p & 0x80 ) != 0;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  }</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadBOM( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">bool</span>* hasBOM );</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="comment">// p is the starting location,</span></div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="comment">// the UTF-8 value of the entity will be placed in value, and length filled in.</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetCharacterRef( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span>* length );</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ConvertUTF32ToUTF8( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> input, <span class="keywordtype">char</span>* output, <span class="keywordtype">int</span>* length );</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="comment">// converts primitive types to strings</span></div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">int</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">unsigned</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">bool</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">float</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">double</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr(int64_t v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize);</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="comment">// converts strings to primitive types</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToInt( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">int</span>* value );</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToUnsigned( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">unsigned</span>* value );</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToBool( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">bool</span>* value );</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToFloat( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">float</span>* value );</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToDouble( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">double</span>* value );</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToInt64(<span class="keyword">const</span> <span class="keywordtype">char</span>* str, int64_t* value);</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="comment">// Changes what is serialized for a boolean value.</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="comment">// Default to "true" and "false". Shouldn't be changed</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="comment">// unless you have a special testing or compatibility need.</span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="comment">// Be careful: static, global, & not thread safe.</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="comment">// Be sure to set static const memory as parameters.</span></div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> SetBoolSerialization(<span class="keyword">const</span> <span class="keywordtype">char</span>* writeTrue, <span class="keyword">const</span> <span class="keywordtype">char</span>* writeFalse);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* writeBoolTrue;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* writeBoolFalse;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span> };</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div><div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html"> 656</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span> {</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div><div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1"> 663</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">GetDocument</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  TIXMLASSERT( _document );</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">return</span> _document;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  }</div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68"> 668</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">GetDocument</a>() {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  TIXMLASSERT( _document );</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">return</span> _document;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8"> 674</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">ToElement</a>() {</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  }</div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b"> 678</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>() {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3"> 682</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>() {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  }</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357"> 686</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">ToDocument</a>() {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  }</div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51"> 690</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>() {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  }</div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd"> 694</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>() {</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  }</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  }</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const </span>{</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* ToComment()<span class="keyword"> const </span>{</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* ToDocument()<span class="keyword"> const </span>{</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const </span>{</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const </span>{</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* Value() <span class="keyword">const</span>;</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordtype">void</span> SetValue( <span class="keyword">const</span> <span class="keywordtype">char</span>* val, <span class="keywordtype">bool</span> staticMem=<span class="keyword">false</span> );</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span> </div><div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286"> 734</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">GetLineNum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _parseLineNum; }</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34"> 737</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">Parent</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">return</span> _parent;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  }</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span> </div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* Parent() {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">return</span> _parent;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span> </div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4"> 746</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">NoChildren</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">return</span> !_firstChild;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  }</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span> </div><div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08"> 751</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">FirstChild</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">return</span> _firstChild;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  }</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span> </div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* FirstChild() {</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">return</span> _firstChild;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  }</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span> </div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->FirstChildElement( name ));</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e"> 769</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">LastChild</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">return</span> _lastChild;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  }</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span> </div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* LastChild() {</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">return</span> _lastChild;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span> </div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->LastChildElement(name) );</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span> </div><div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551"> 787</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">PreviousSibling</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> _prev;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span> </div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* PreviousSibling() {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">return</span> _prev;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  }</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span> ;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span> </div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->PreviousSiblingElement( name ) );</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span> </div><div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5"> 803</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">NextSibling</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  }</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* NextSibling() {</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  }</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span> </div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->NextSiblingElement( name ) );</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  }</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertEndChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* LinkEndChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis ) {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordflow">return</span> InsertEndChild( addThis );</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  }</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertFirstChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertAfterChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* afterThis, <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span> </div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keywordtype">void</span> DeleteChildren();</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span> </div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keywordtype">void</span> DeleteChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span> </div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span> </div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* DeepClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* target ) <span class="keyword">const</span>;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span> </div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span> </div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span> </div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2"> 921</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(<span class="keywordtype">void</span>* userData) { _userData = userData; }</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> </div><div class="line"><a name="l00928"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe"> 928</a></span>  <span class="keywordtype">void</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">GetUserData</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _userData; }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span> </div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* );</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>();</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span> </div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keyword">virtual</span> <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr);</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span> </div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* _document;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _parent;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <span class="keyword">mutable</span> StrPair _value;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordtype">int</span> _parseLineNum;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span> </div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _firstChild;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _lastChild;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span> </div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _prev;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _next;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span> </div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keywordtype">void</span>* _userData;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span> </div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  MemPool* _memPool;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keywordtype">void</span> Unlink( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* child );</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> DeleteNode( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keywordtype">void</span> InsertChildPreamble( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* insertThis ) <span class="keyword">const</span>;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElementWithName( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span> </div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span> };</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span> </div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span> </div><div class="line"><a name="l00973"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html"> 973</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span> {</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span> </div><div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7"> 979</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">ToText</a>() {</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  }</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const </span>{</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  }</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span> </div><div class="line"><a name="l00987"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d"> 987</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">SetCData</a>( <span class="keywordtype">bool</span> isCData ) {</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  _isCData = isCData;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  }</div><div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b"> 991</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">CData</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">return</span> _isCData;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  }</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span> </div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span> </div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc ) : <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( doc ), _isCData( <span class="keyword">false</span> ) {}</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>() {}</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> </div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> </div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordtype">bool</span> _isCData;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> </div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> };</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> </div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> </div><div class="line"><a name="l01013"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_comment.html"> 1013</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> {</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee"> 1017</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee">ToComment</a>() {</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  }</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* ToComment()<span class="keyword"> const </span>{</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  }</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> </div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> </div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>();</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> </div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> </div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> };</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> </div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> </div><div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_declaration.html"> 1052</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> {</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5"> 1056</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5">ToDeclaration</a>() {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  }</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const </span>{</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  }</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> </div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>();</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> </div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> </div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> };</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> </div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> </div><div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_unknown.html"> 1087</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> {</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6"> 1091</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6">ToUnknown</a>() {</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  }</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const </span>{</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  }</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> </div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> </div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> </div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>();</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> </div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> </div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> };</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> </div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> </div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> </div><div class="line"><a name="l01122"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html"> 1122</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a></div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> {</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* Name() <span class="keyword">const</span>;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> </div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* Value() <span class="keyword">const</span>;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> </div><div class="line"><a name="l01133"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765"> 1133</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">GetLineNum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _parseLineNum; }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> </div><div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6"> 1136</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6">Next</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  }</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> </div><div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80"> 1144</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">IntValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  QueryIntValue(&i);</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  }</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> </div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  int64_t Int64Value()<span class="keyword"> const </span>{</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  int64_t i = 0;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  QueryInt64Value(&i);</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  }</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div><div class="line"><a name="l01157"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338"> 1157</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338">UnsignedValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <span class="keywordtype">unsigned</span> i=0;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  QueryUnsignedValue( &i );</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  }</div><div class="line"><a name="l01163"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff"> 1163</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff">BoolValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>  <span class="keywordtype">bool</span> b=<span class="keyword">false</span>;</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  QueryBoolValue( &b );</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  <span class="keywordflow">return</span> b;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  }</div><div class="line"><a name="l01169"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f"> 1169</a></span>  <span class="keywordtype">double</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f">DoubleValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  <span class="keywordtype">double</span> d=0;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  QueryDoubleValue( &d );</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  <span class="keywordflow">return</span> d;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  }</div><div class="line"><a name="l01175"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801"> 1175</a></span>  <span class="keywordtype">float</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801">FloatValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  <span class="keywordtype">float</span> f=0;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  QueryFloatValue( &f );</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  <span class="keywordflow">return</span> f;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  }</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> </div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  XMLError QueryIntValue( <span class="keywordtype">int</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  XMLError QueryUnsignedValue( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  XMLError QueryInt64Value(int64_t* value) <span class="keyword">const</span>;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  XMLError QueryBoolValue( <span class="keywordtype">bool</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>  XMLError QueryDoubleValue( <span class="keywordtype">double</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  XMLError QueryFloatValue( <span class="keywordtype">float</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> </div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>  <span class="keywordtype">void</span> SetAttribute(int64_t value);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> </div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  <span class="keyword">enum</span> { BUF_SIZE = 200 };</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> </div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>() : _name(), _value(),_parseLineNum( 0 ), _next( 0 ), _memPool( 0 ) {}</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>() {}</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> </div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>  <span class="keywordtype">void</span> SetName( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> </div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, <span class="keywordtype">bool</span> processEntities, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> </div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <span class="keyword">mutable</span> StrPair _name;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>  <span class="keyword">mutable</span> StrPair _value;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>  <span class="keywordtype">int</span> _parseLineNum;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* _next;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>  MemPool* _memPool;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> };</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> </div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> </div><div class="line"><a name="l01236"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html"> 1236</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> {</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01241"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35"> 1241</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35">Name</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  <span class="keywordflow">return</span> Value();</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  }</div><div class="line"><a name="l01245"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1"> 1245</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">SetName</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">bool</span> staticMem=<span class="keyword">false</span> ) {</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  SetValue( str, staticMem );</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  }</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> </div><div class="line"><a name="l01249"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d"> 1249</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">ToElement</a>() {</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  }</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  }</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* Attribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value=0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> </div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  <span class="keywordtype">int</span> IntAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  <span class="keywordtype">unsigned</span> UnsignedAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  int64_t Int64Attribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  <span class="keywordtype">bool</span> BoolAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> defaultValue = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  <span class="keywordtype">double</span> DoubleAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  <span class="keywordtype">float</span> FloatAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> </div><div class="line"><a name="l01313"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1"> 1313</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  }</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">QueryIntValue</a>( value );</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  }</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> </div><div class="line"><a name="l01322"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f"> 1322</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">QueryUnsignedAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  }</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9">QueryUnsignedValue</a>( value );</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  }</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> </div><div class="line"><a name="l01331"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8"> 1331</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8">QueryInt64Attribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t* value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute(name);</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  <span class="keywordflow">if</span> (!a) {</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  }</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2">QueryInt64Value</a>(value);</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  }</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> </div><div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872"> 1340</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">QueryBoolAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  }</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c">QueryBoolValue</a>( value );</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  }</div><div class="line"><a name="l01348"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c"> 1348</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">QueryDoubleAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  }</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9">QueryDoubleValue</a>( value );</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  }</div><div class="line"><a name="l01356"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5"> 1356</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">QueryFloatAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  }</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607">QueryFloatValue</a>( value );</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  }</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> </div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>  </div><div class="line"><a name="l01382"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f"> 1382</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">QueryAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  <span class="keywordflow">return</span> QueryIntAttribute( name, value );</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>  }</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> </div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  <span class="keywordtype">int</span> QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>  <span class="keywordflow">return</span> QueryUnsignedAttribute( name, value );</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>  }</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> </div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>  <span class="keywordtype">int</span> QueryAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t* value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>  <span class="keywordflow">return</span> QueryInt64Attribute(name, value);</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>  }</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> </div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  <span class="keywordtype">int</span> QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  <span class="keywordflow">return</span> QueryBoolAttribute( name, value );</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  }</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> </div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  <span class="keywordtype">int</span> QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  <span class="keywordflow">return</span> QueryDoubleAttribute( name, value );</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  }</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> </div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  <span class="keywordtype">int</span> QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  <span class="keywordflow">return</span> QueryFloatAttribute( name, value );</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  }</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> </div><div class="line"><a name="l01407"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c"> 1407</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value ) {</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  }</div><div class="line"><a name="l01412"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf"> 1412</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> value ) {</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  }</div><div class="line"><a name="l01417"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f"> 1417</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> value ) {</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  }</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> </div><div class="line"><a name="l01423"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd"> 1423</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">SetAttribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t value) {</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute(name);</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>(value);</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  }</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> </div><div class="line"><a name="l01429"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1"> 1429</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> value ) {</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  }</div><div class="line"><a name="l01434"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533"> 1434</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> value ) {</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  }</div><div class="line"><a name="l01439"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759"> 1439</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span> value ) {</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  }</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> </div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  <span class="keywordtype">void</span> DeleteAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> </div><div class="line"><a name="l01450"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686"> 1450</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686">FirstAttribute</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  <span class="keywordflow">return</span> _rootAttribute;</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  }</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> </div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* GetText() <span class="keyword">const</span>;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> </div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>  <span class="keywordtype">void</span> SetText( <span class="keyword">const</span> <span class="keywordtype">char</span>* inText );</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">unsigned</span> value ); </div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>  <span class="keywordtype">void</span> SetText(int64_t value);</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">bool</span> value ); </div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">double</span> value ); </div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">float</span> value ); </div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> </div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  XMLError QueryIntText( <span class="keywordtype">int</span>* ival ) <span class="keyword">const</span>;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>  XMLError QueryUnsignedText( <span class="keywordtype">unsigned</span>* uval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  XMLError QueryInt64Text(int64_t* uval) <span class="keyword">const</span>;</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  XMLError QueryBoolText( <span class="keywordtype">bool</span>* bval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  XMLError QueryDoubleText( <span class="keywordtype">double</span>* dval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  XMLError QueryFloatText( <span class="keywordtype">float</span>* fval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> </div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>  <span class="keywordtype">int</span> IntText(<span class="keywordtype">int</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> </div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  <span class="keywordtype">unsigned</span> UnsignedText(<span class="keywordtype">unsigned</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  int64_t Int64Text(int64_t defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>  <span class="keywordtype">bool</span> BoolText(<span class="keywordtype">bool</span> defaultValue = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  <span class="keywordtype">double</span> DoubleText(<span class="keywordtype">double</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  <span class="keywordtype">float</span> FloatText(<span class="keywordtype">float</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> </div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  <span class="comment">// internal:</span></div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  <span class="keyword">enum</span> ElementClosingType {</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  OPEN, <span class="comment">// <foo></span></div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  CLOSED, <span class="comment">// <foo/></span></div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  CLOSING <span class="comment">// </foo></span></div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  };</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  ElementClosingType ClosingType()<span class="keyword"> const </span>{</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  <span class="keywordflow">return</span> _closingType;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  }</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> </div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> </div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>();</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> </div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) {</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->FindAttribute( name ));</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  }</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindOrCreateAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  <span class="comment">//void LinkAttribute( XMLAttribute* attrib );</span></div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>  <span class="keywordtype">char</span>* ParseAttributes( <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> DeleteAttribute( <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* attribute );</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* CreateAttribute();</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> </div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  <span class="keyword">enum</span> { BUF_SIZE = 200 };</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  ElementClosingType _closingType;</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>  <span class="comment">// The attribute list is ordered; there is no 'lastAttribute'</span></div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  <span class="comment">// because the list needs to be scanned for dupes before adding</span></div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>  <span class="comment">// a new attribute.</span></div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* _rootAttribute;</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> };</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> </div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> </div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> <span class="keyword">enum</span> Whitespace {</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  PRESERVE_WHITESPACE,</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  COLLAPSE_WHITESPACE</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> };</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> </div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> </div><div class="line"><a name="l01635"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html"> 1635</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> {</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  <span class="comment">// Gives access to SetError, but over-access for everything else.</span></div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  <span class="comment">// Wishing C++ had "internal" scope.</span></div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>; </div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>;</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>;</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>( <span class="keywordtype">bool</span> processEntities = <span class="keyword">true</span>, Whitespace whitespaceMode = PRESERVE_WHITESPACE );</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  ~<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>();</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> </div><div class="line"><a name="l01650"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec"> 1650</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">ToDocument</a>() {</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>  TIXMLASSERT( <span class="keyword">this</span> == _document );</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  }</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* ToDocument()<span class="keyword"> const </span>{</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  TIXMLASSERT( <span class="keyword">this</span> == _document );</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  }</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> </div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>  XMLError Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* xml, <span class="keywordtype">size_t</span> nBytes=(<span class="keywordtype">size_t</span>)(-1) );</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> </div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>  XMLError LoadFile( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename );</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> </div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  XMLError LoadFile( FILE* );</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> </div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  XMLError SaveFile( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span> );</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> </div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  XMLError SaveFile( FILE* fp, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span> );</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> </div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  <span class="keywordtype">bool</span> ProcessEntities()<span class="keyword"> const </span>{</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>  <span class="keywordflow">return</span> _processEntities;</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  }</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>  Whitespace WhitespaceMode()<span class="keyword"> const </span>{</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <span class="keywordflow">return</span> _whitespaceMode;</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>  }</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> </div><div class="line"><a name="l01717"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd"> 1717</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">HasBOM</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  <span class="keywordflow">return</span> _writeBOM;</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>  }</div><div class="line"><a name="l01722"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0"> 1722</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">SetBOM</a>( <span class="keywordtype">bool</span> useBOM ) {</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>  _writeBOM = useBOM;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>  }</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> </div><div class="line"><a name="l01729"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c"> 1729</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">RootElement</a>() {</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>  <span class="keywordflow">return</span> FirstChildElement();</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  }</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* RootElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>  <span class="keywordflow">return</span> FirstChildElement();</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>  }</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> </div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>  <span class="keywordtype">void</span> Print( <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>* streamer=0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> </div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NewElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* NewComment( <span class="keyword">const</span> <span class="keywordtype">char</span>* comment );</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* NewText( <span class="keyword">const</span> <span class="keywordtype">char</span>* text );</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* NewDeclaration( <span class="keyword">const</span> <span class="keywordtype">char</span>* text=0 );</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* NewUnknown( <span class="keyword">const</span> <span class="keywordtype">char</span>* text );</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> </div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>  <span class="keywordtype">void</span> DeleteNode( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span> </div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>  <span class="keywordtype">void</span> ClearError() {</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>  SetError(XML_SUCCESS, 0, 0);</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>  }</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> </div><div class="line"><a name="l01801"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed"> 1801</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">Error</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>  <span class="keywordflow">return</span> _errorID != XML_SUCCESS;</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>  }</div><div class="line"><a name="l01805"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d"> 1805</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">ErrorID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>  <span class="keywordflow">return</span> _errorID;</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>  }</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorName() <span class="keyword">const</span>;</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorIDToName(XMLError errorID);</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> </div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorStr() <span class="keyword">const</span>;</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> </div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>  <span class="keywordtype">void</span> PrintError() <span class="keyword">const</span>;</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> </div><div class="line"><a name="l01820"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76"> 1820</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">ErrorLineNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> <span class="keyword"> </span>{</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>  <span class="keywordflow">return</span> _errorLineNum;</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>  }</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>  </div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>  <span class="keywordtype">void</span> Clear();</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> </div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>  <span class="keywordtype">void</span> DeepCopy(<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* target) <span class="keyword">const</span>;</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> </div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>  <span class="comment">// internal</span></div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>  <span class="keywordtype">char</span>* Identify( <span class="keywordtype">char</span>* p, <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>** node );</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> </div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>  <span class="comment">// internal</span></div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>  <span class="keywordtype">void</span> MarkInUse(<a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*);</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> </div><div class="line"><a name="l01843"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8"> 1843</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">ShallowClone</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <span class="comment">/*document*/</span> )<span class="keyword"> const </span>{</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>  }</div><div class="line"><a name="l01846"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9"> 1846</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">ShallowEqual</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <span class="comment">/*compare*/</span> )<span class="keyword"> const </span>{</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>  }</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> </div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> </div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>  <span class="keywordtype">bool</span> _writeBOM;</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>  <span class="keywordtype">bool</span> _processEntities;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>  XMLError _errorID;</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>  Whitespace _whitespaceMode;</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>  <span class="keyword">mutable</span> StrPair _errorStr;</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>  <span class="keywordtype">int</span> _errorLineNum;</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>  <span class="keywordtype">char</span>* _charBuffer;</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>  <span class="keywordtype">int</span> _parseCurLineNum;</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>  <span class="comment">// Memory tracking does add some overhead.</span></div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>  <span class="comment">// However, the code assumes that you don't</span></div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>  <span class="comment">// have a bunch of unlinked nodes around.</span></div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>  <span class="comment">// Therefore it takes less memory to track</span></div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>  <span class="comment">// in the document vs. a linked list in the XMLNode,</span></div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>  <span class="comment">// and the performance is the same.</span></div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>  DynArray<XMLNode*, 10> _unlinked;</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> </div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>  MemPoolT< sizeof(XMLElement) > _elementPool;</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>  MemPoolT< sizeof(XMLAttribute) > _attributePool;</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>  MemPoolT< sizeof(XMLText) > _textPool;</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>  MemPoolT< sizeof(XMLComment) > _commentPool;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> </div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* _errorNames[XML_ERROR_COUNT];</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span> </div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>  <span class="keywordtype">void</span> Parse();</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> </div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>  <span class="keywordtype">void</span> SetError( XMLError error, <span class="keywordtype">int</span> lineNum, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> </div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>  <span class="keyword">template</span><<span class="keyword">class</span> NodeType, <span class="keywordtype">int</span> PoolElementSize></div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>  NodeType* CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool );</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> };</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> </div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> <span class="keyword">template</span><<span class="keyword">class</span> NodeType, <span class="keywordtype">int</span> PoolElementSize></div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> <span class="keyword">inline</span> NodeType* XMLDocument::CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool )</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> {</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>  TIXMLASSERT( <span class="keyword">sizeof</span>( NodeType ) == PoolElementSize );</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>  TIXMLASSERT( <span class="keyword">sizeof</span>( NodeType ) == pool.ItemSize() );</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>  NodeType* returnNode = <span class="keyword">new</span> (pool.Alloc()) NodeType( <span class="keyword">this</span> );</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>  TIXMLASSERT( returnNode );</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>  returnNode->_memPool = &pool;</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> </div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>  _unlinked.Push(returnNode);</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>  <span class="keywordflow">return</span> returnNode;</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> }</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> </div><div class="line"><a name="l01953"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html"> 1953</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a></div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> {</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01957"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793"> 1957</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">XMLHandle</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node ) : _node( node ) {</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>  }</div><div class="line"><a name="l01960"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500"> 1960</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">XMLHandle</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& node ) : _node( &node ) {</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>  }</div><div class="line"><a name="l01963"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa"> 1963</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">XMLHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>& ref ) : _node( ref._node ) {</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>  }</div><div class="line"><a name="l01966"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20"> 1966</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>& <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20">operator=</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>& ref ) {</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  _node = ref._node;</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>  }</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> </div><div class="line"><a name="l01972"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae"> 1972</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae">FirstChild</a>() {</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->FirstChild() : 0 );</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>  }</div><div class="line"><a name="l01976"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3"> 1976</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->FirstChildElement( name ) : 0 );</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>  }</div><div class="line"><a name="l01980"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b"> 1980</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b">LastChild</a>() {</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->LastChild() : 0 );</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>  }</div><div class="line"><a name="l01984"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c"> 1984</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c">LastChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->LastChildElement( name ) : 0 );</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>  }</div><div class="line"><a name="l01988"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c"> 1988</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c">PreviousSibling</a>() {</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->PreviousSibling() : 0 );</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>  }</div><div class="line"><a name="l01992"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e"> 1992</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e">PreviousSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->PreviousSiblingElement( name ) : 0 );</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>  }</div><div class="line"><a name="l01996"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5"> 1996</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5">NextSibling</a>() {</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->NextSibling() : 0 );</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>  }</div><div class="line"><a name="l02000"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5"> 2000</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5">NextSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->NextSiblingElement( name ) : 0 );</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>  }</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span> </div><div class="line"><a name="l02005"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df"> 2005</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">ToNode</a>() {</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>  <span class="keywordflow">return</span> _node;</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>  }</div><div class="line"><a name="l02009"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99"> 2009</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99">ToElement</a>() {</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>  <span class="keywordflow">return</span> ( _node ? _node->ToElement() : 0 );</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>  }</div><div class="line"><a name="l02013"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a"> 2013</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">ToText</a>() {</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>  <span class="keywordflow">return</span> ( _node ? _node->ToText() : 0 );</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>  }</div><div class="line"><a name="l02017"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de"> 2017</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">ToUnknown</a>() {</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>  <span class="keywordflow">return</span> ( _node ? _node->ToUnknown() : 0 );</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>  }</div><div class="line"><a name="l02021"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0"> 2021</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0">ToDeclaration</a>() {</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>  <span class="keywordflow">return</span> ( _node ? _node->ToDeclaration() : 0 );</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>  }</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> </div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> <span class="keyword">private</span>:</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _node;</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> };</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> </div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> </div><div class="line"><a name="l02034"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_const_handle.html"> 2034</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a></div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> {</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> <span class="keyword">public</span>:</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node ) : _node( node ) {</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>  }</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& node ) : _node( &node ) {</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>  }</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>& ref ) : _node( ref._node ) {</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>  }</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> </div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>& ref ) {</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>  _node = ref._node;</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>  }</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> </div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> FirstChild()<span class="keyword"> const </span>{</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->FirstChild() : 0 );</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>  }</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->FirstChildElement( name ) : 0 );</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>  }</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> LastChild()<span class="keyword"> const </span>{</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->LastChild() : 0 );</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>  }</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->LastChildElement( name ) : 0 );</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>  }</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> PreviousSibling()<span class="keyword"> const </span>{</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->PreviousSibling() : 0 );</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>  }</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->PreviousSiblingElement( name ) : 0 );</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>  }</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> NextSibling()<span class="keyword"> const </span>{</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->NextSibling() : 0 );</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>  }</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->NextSiblingElement( name ) : 0 );</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>  }</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span> </div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> </div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ToNode()<span class="keyword"> const </span>{</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>  <span class="keywordflow">return</span> _node;</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>  }</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>  <span class="keywordflow">return</span> ( _node ? _node->ToElement() : 0 );</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>  }</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const </span>{</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>  <span class="keywordflow">return</span> ( _node ? _node->ToText() : 0 );</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>  }</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const </span>{</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  <span class="keywordflow">return</span> ( _node ? _node->ToUnknown() : 0 );</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>  }</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const </span>{</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>  <span class="keywordflow">return</span> ( _node ? _node->ToDeclaration() : 0 );</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>  }</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> </div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> <span class="keyword">private</span>:</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _node;</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> };</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> </div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> </div><div class="line"><a name="l02138"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html"> 2138</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a></div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> {</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span> <span class="keyword">public</span>:</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>( FILE* file=0, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span>, <span class="keywordtype">int</span> depth = 0 );</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>() {}</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span> </div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>  <span class="keywordtype">void</span> PushHeader( <span class="keywordtype">bool</span> writeBOM, <span class="keywordtype">bool</span> writeDeclaration );</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>  <span class="keywordtype">void</span> OpenElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> compactMode=<span class="keyword">false</span> );</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> value );</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>  <span class="keywordtype">void</span> PushAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t value);</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> value );</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> CloseElement( <span class="keywordtype">bool</span> compactMode=<span class="keyword">false</span> );</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span> </div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>  <span class="keywordtype">void</span> PushText( <span class="keyword">const</span> <span class="keywordtype">char</span>* text, <span class="keywordtype">bool</span> cdata=<span class="keyword">false</span> );</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>  <span class="keywordtype">void</span> PushText(int64_t value);</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span> </div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>  <span class="keywordtype">void</span> PushComment( <span class="keyword">const</span> <span class="keywordtype">char</span>* comment );</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> </div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>  <span class="keywordtype">void</span> PushDeclaration( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>  <span class="keywordtype">void</span> PushUnknown( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> </div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitEnter( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& <span class="comment">/*doc*/</span> );</div><div class="line"><a name="l02188"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29"> 2188</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& <span class="comment">/*doc*/</span> ) {</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>  }</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> </div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitEnter( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& element, <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* attribute );</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitExit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& element );</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span> </div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& text );</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& comment );</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& declaration );</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& unknown );</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span> </div><div class="line"><a name="l02204"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e"> 2204</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">CStr</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>  <span class="keywordflow">return</span> _buffer.Mem();</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>  }</div><div class="line"><a name="l02212"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c"> 2212</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c">CStrSize</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>  <span class="keywordflow">return</span> _buffer.Size();</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>  }</div><div class="line"><a name="l02219"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909"> 2219</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909">ClearBuffer</a>() {</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>  _buffer.Clear();</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>  _buffer.Push(0);</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>  _firstElement = <span class="keyword">true</span>;</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>  }</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span> </div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> CompactMode( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& ) { <span class="keywordflow">return</span> _compactMode; }</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span> </div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> PrintSpace( <span class="keywordtype">int</span> depth );</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>  <span class="keywordtype">void</span> Print( <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>  <span class="keywordtype">void</span> Write( <span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span> size );</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> Write( <span class="keyword">const</span> <span class="keywordtype">char</span>* data ) { Write( data, strlen( data ) ); }</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>  <span class="keywordtype">void</span> Putc( <span class="keywordtype">char</span> ch );</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span> </div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>  <span class="keywordtype">void</span> SealElementIfJustOpened();</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>  <span class="keywordtype">bool</span> _elementJustOpened;</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>  DynArray< const char*, 10 > _stack;</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> </div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> <span class="keyword">private</span>:</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>  <span class="keywordtype">void</span> PrintString( <span class="keyword">const</span> <span class="keywordtype">char</span>*, <span class="keywordtype">bool</span> restrictedEntitySet ); <span class="comment">// prints out, after detecting entities.</span></div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> </div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>  <span class="keywordtype">bool</span> _firstElement;</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>  FILE* _fp;</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>  <span class="keywordtype">int</span> _depth;</div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>  <span class="keywordtype">int</span> _textDepth;</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>  <span class="keywordtype">bool</span> _processEntities;</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>  <span class="keywordtype">bool</span> _compactMode;</div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span> </div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>  <span class="keyword">enum</span> {</div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>  ENTITY_RANGE = 64,</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>  BUF_SIZE = 200</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>  };</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>  <span class="keywordtype">bool</span> _entityFlag[ENTITY_RANGE];</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>  <span class="keywordtype">bool</span> _restrictedEntityFlag[ENTITY_RANGE];</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> </div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>  DynArray< char, 20 > _buffer;</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> </div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>  <span class="comment">// Prohibit cloning, intentionally not implemented</span></div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>& );</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>& );</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> };</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> </div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span> </div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> } <span class="comment">// tinyxml2</span></div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span> </div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span> <span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span> <span class="preprocessor"># pragma warning(pop)</span></div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> </div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span> <span class="preprocessor">#endif // TINYXML2_INCLUDED</span></div><div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a7c0955d80b6f8d196744eacb0f6e90a8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8">tinyxml2::XMLElement::QueryInt64Attribute</a></div><div class="ttdeci">XMLError QueryInt64Attribute(const char *name, int64_t *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1331</div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">Original code by Lee Thomason (www.grinninglizard.com)</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">This software is provided 'as-is', without any express or implied</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">warranty. In no event will the authors be held liable for any</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">damages arising from the use of this software.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">Permission is granted to anyone to use this software for any</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">purpose, including commercial applications, and to alter it and</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">redistribute it freely, subject to the following restrictions:</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"></span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">1. The origin of this software must not be misrepresented; you must</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">not claim that you wrote the original software. If you use this</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">software in a product, an acknowledgment in the product documentation</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">would be appreciated but is not required.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">2. Altered source versions must be plainly marked as such, and</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">must not be misrepresented as being the original software.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">3. This notice may not be removed or altered from any source</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">distribution.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">*/</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef TINYXML2_INCLUDED</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define TINYXML2_INCLUDED</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># include <ctype.h></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># include <limits.h></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># include <stdio.h></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># include <stdlib.h></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># include <string.h></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># if defined(__PS3__)</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># include <stddef.h></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># include <cctype></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># include <climits></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># include <cstdio></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"># include <cstdlib></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"># include <cstring></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> TODO: intern strings instead of allocation.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">/*</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> gcc:</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> g++ -Wall -DTINYXML2_DEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"></span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> Formatting, Artistic Style:</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">*/</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#if defined( _DEBUG ) || defined (__DEBUG__)</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># ifndef TINYXML2_DEBUG</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># define TINYXML2_DEBUG</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># pragma warning(push)</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># pragma warning(disable: 4251)</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#ifdef _WIN32</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"># ifdef TINYXML2_EXPORT</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># define TINYXML2_LIB __declspec(dllexport)</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># elif defined(TINYXML2_IMPORT)</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"># define TINYXML2_LIB __declspec(dllimport)</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># define TINYXML2_LIB</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#elif __GNUC__ >= 4</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># define TINYXML2_LIB __attribute__((visibility("default")))</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"># define TINYXML2_LIB</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#if defined(TINYXML2_DEBUG)</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># if defined(_MSC_VER)</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"># // "(void)0," is for suppressing C4127 warning in "assert(false)", "assert(true)" and the like</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"># define TIXMLASSERT( x ) if ( !((void)0,(x))) { __debugbreak(); }</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"># elif defined (ANDROID_NDK)</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"># include <android/log.h></span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># define TIXMLASSERT( x ) if ( !(x)) { __android_log_assert( "assert", "grinliz", "ASSERT in '%s' at %d.", __FILE__, __LINE__ ); }</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># include <assert.h></span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># define TIXMLASSERT assert</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"># define TIXMLASSERT( x ) {}</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">/* Versioning, past 1.0.14:</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> http://semver.org/</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">*/</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_MAJOR_VERSION = 7;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_MINOR_VERSION = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_PATCH_VERSION = 0;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#define TINYXML2_MAJOR_VERSION 7</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#define TINYXML2_MINOR_VERSION 0</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#define TINYXML2_PATCH_VERSION 0</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// A fixed element depth limit is problematic. There needs to be a</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// limit to avoid a stack overflow. However, that limit varies per</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// system, and the capacity of the stack. On the other hand, it's a trivial</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// attack that can result from ill, malicious, or even correctly formed XML,</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// so there needs to be a limit in place.</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TINYXML2_MAX_ELEMENT_DEPTH = 100;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">namespace </span><a class="code" href="namespacetinyxml2.html">tinyxml2</a></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">class </span>XMLDocument;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">class </span>XMLElement;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">class </span>XMLAttribute;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">class </span>XMLComment;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">class </span>XMLText;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">class </span>XMLDeclaration;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">class </span>XMLUnknown;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">class </span>XMLPrinter;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">/*</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> A class that wraps strings. Normally stores the start and end</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> pointers into the XML file itself, and will apply normalization</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"> and entity translation if actually read. Can also store (and memory</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"> manage) a traditional char[]</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">*/</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">class </span>StrPair</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">enum</span> {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  NEEDS_ENTITY_PROCESSING = 0x01,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  NEEDS_NEWLINE_NORMALIZATION = 0x02,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  NEEDS_WHITESPACE_COLLAPSING = 0x04,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  TEXT_ELEMENT = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  TEXT_ELEMENT_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  ATTRIBUTE_NAME = 0,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  ATTRIBUTE_VALUE = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  ATTRIBUTE_VALUE_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  COMMENT = NEEDS_NEWLINE_NORMALIZATION</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  };</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  StrPair() : _flags( 0 ), _start( 0 ), _end( 0 ) {}</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  ~StrPair();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordtype">void</span> Set( <span class="keywordtype">char</span>* start, <span class="keywordtype">char</span>* end, <span class="keywordtype">int</span> flags ) {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  TIXMLASSERT( start );</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  TIXMLASSERT( end );</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  Reset();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  _start = start;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  _end = end;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  _flags = flags | NEEDS_FLUSH;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* GetStr();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordtype">bool</span> Empty()<span class="keyword"> const </span>{</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> _start == _end;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">void</span> SetInternedStr( <span class="keyword">const</span> <span class="keywordtype">char</span>* str ) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  Reset();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  _start = <span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(str);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">void</span> SetStr( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">int</span> flags=0 );</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordtype">char</span>* ParseText( <span class="keywordtype">char</span>* in, <span class="keyword">const</span> <span class="keywordtype">char</span>* endTag, <span class="keywordtype">int</span> strFlags, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordtype">char</span>* ParseName( <span class="keywordtype">char</span>* in );</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">void</span> TransferTo( StrPair* other );</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">void</span> Reset();</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordtype">void</span> CollapseWhitespace();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">enum</span> {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  NEEDS_FLUSH = 0x100,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  NEEDS_DELETE = 0x200</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  };</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordtype">int</span> _flags;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordtype">char</span>* _start;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">char</span>* _end;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  StrPair( <span class="keyword">const</span> StrPair& other ); <span class="comment">// not supported</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> StrPair& other ); <span class="comment">// not supported, use TransferTo()</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> };</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">/*</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment"> A dynamic array of Plain Old Data. Doesn't support constructors, etc.</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment"> Has a small initial memory pool, so that low or no usage will not</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment"> cause a call to new/delete</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">*/</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> INITIAL_SIZE></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">class </span>DynArray</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  DynArray() :</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  _mem( _pool ),</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  _allocated( INITIAL_SIZE ),</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  _size( 0 )</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  ~DynArray() {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">if</span> ( _mem != _pool ) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">delete</span> [] _mem;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordtype">void</span> Clear() {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  _size = 0;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordtype">void</span> Push( T t ) {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  TIXMLASSERT( _size < INT_MAX );</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  EnsureCapacity( _size+1 );</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  _mem[_size] = t;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  ++_size;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  T* PushArr( <span class="keywordtype">int</span> count ) {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  TIXMLASSERT( count >= 0 );</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  TIXMLASSERT( _size <= INT_MAX - count );</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  EnsureCapacity( _size+count );</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  T* ret = &_mem[_size];</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  _size += count;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  T Pop() {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  TIXMLASSERT( _size > 0 );</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  --_size;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">return</span> _mem[_size];</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordtype">void</span> PopArr( <span class="keywordtype">int</span> count ) {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  TIXMLASSERT( _size >= count );</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  _size -= count;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordtype">bool</span> Empty()<span class="keyword"> const </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> _size == 0;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  T& operator[](<span class="keywordtype">int</span> i) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  TIXMLASSERT( i>= 0 && i < _size );</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> _mem[i];</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keyword">const</span> T& operator[](<span class="keywordtype">int</span> i)<span class="keyword"> const </span>{</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  TIXMLASSERT( i>= 0 && i < _size );</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> _mem[i];</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">const</span> T& PeekTop()<span class="keyword"> const </span>{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  TIXMLASSERT( _size > 0 );</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span> _mem[ _size - 1];</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordtype">int</span> Size()<span class="keyword"> const </span>{</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  TIXMLASSERT( _size >= 0 );</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> _size;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordtype">int</span> Capacity()<span class="keyword"> const </span>{</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  TIXMLASSERT( _allocated >= INITIAL_SIZE );</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">return</span> _allocated;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordtype">void</span> SwapRemove(<span class="keywordtype">int</span> i) {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  TIXMLASSERT(i >= 0 && i < _size);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  TIXMLASSERT(_size > 0);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  _mem[i] = _mem[_size - 1];</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  --_size;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keyword">const</span> T* Mem()<span class="keyword"> const </span>{</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  TIXMLASSERT( _mem );</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> _mem;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  T* Mem() {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  TIXMLASSERT( _mem );</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">return</span> _mem;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  DynArray( <span class="keyword">const</span> DynArray& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> DynArray& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordtype">void</span> EnsureCapacity( <span class="keywordtype">int</span> cap ) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  TIXMLASSERT( cap > 0 );</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">if</span> ( cap > _allocated ) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  TIXMLASSERT( cap <= INT_MAX / 2 );</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordtype">int</span> newAllocated = cap * 2;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  T* newMem = <span class="keyword">new</span> T[newAllocated];</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  TIXMLASSERT( newAllocated >= _size );</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  memcpy( newMem, _mem, <span class="keyword">sizeof</span>(T)*_size ); <span class="comment">// warning: not using constructors, only works for PODs</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">if</span> ( _mem != _pool ) {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">delete</span> [] _mem;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  _mem = newMem;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  _allocated = newAllocated;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  T* _mem;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  T _pool[INITIAL_SIZE];</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordtype">int</span> _allocated; <span class="comment">// objects allocated</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordtype">int</span> _size; <span class="comment">// number objects in use</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> };</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment">/*</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment"> Parent virtual class of a pool for fast allocation</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment"> and deallocation of objects.</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment">*/</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="keyword">class </span>MemPool</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  MemPool() {}</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keyword">virtual</span> ~MemPool() {}</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> ItemSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span>* Alloc() = 0;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Free( <span class="keywordtype">void</span>* ) = 0;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetTracked() = 0;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> };</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="comment">/*</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="comment"> Template child class to create pools of the correct type.</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment">*/</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">template</span>< <span class="keywordtype">int</span> ITEM_SIZE ></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">class </span>MemPoolT : <span class="keyword">public</span> MemPool</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  MemPoolT() : _blockPtrs(), _root(0), _currentAllocs(0), _nAllocs(0), _maxAllocs(0), _nUntracked(0) {}</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  ~MemPoolT() {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  MemPoolT< ITEM_SIZE >::Clear();</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordtype">void</span> Clear() {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="comment">// Delete the blocks.</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">while</span>( !_blockPtrs.Empty()) {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  Block* lastBlock = _blockPtrs.Pop();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">delete</span> lastBlock;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  _root = 0;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  _currentAllocs = 0;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  _nAllocs = 0;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  _maxAllocs = 0;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  _nUntracked = 0;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> ItemSize()<span class="keyword"> const </span>{</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">return</span> ITEM_SIZE;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordtype">int</span> CurrentAllocs()<span class="keyword"> const </span>{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">return</span> _currentAllocs;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span>* Alloc() {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> ( !_root ) {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="comment">// Need a new block.</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  Block* block = <span class="keyword">new</span> Block();</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  _blockPtrs.Push( block );</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  Item* blockItems = block->items;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i < ITEMS_PER_BLOCK - 1; ++i ) {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  blockItems[i].next = &(blockItems[i + 1]);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  blockItems[ITEMS_PER_BLOCK - 1].next = 0;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  _root = blockItems;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  Item* <span class="keyword">const</span> result = _root;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  TIXMLASSERT( result != 0 );</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  _root = _root->next;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  ++_currentAllocs;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span> ( _currentAllocs > _maxAllocs ) {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  _maxAllocs = _currentAllocs;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  ++_nAllocs;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  ++_nUntracked;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Free( <span class="keywordtype">void</span>* mem ) {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">if</span> ( !mem ) {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  --_currentAllocs;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  Item* item = <span class="keyword">static_cast<</span>Item*<span class="keyword">></span>( mem );</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor">#ifdef TINYXML2_DEBUG</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  memset( item, 0xfe, <span class="keyword">sizeof</span>( *item ) );</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  item->next = _root;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  _root = item;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordtype">void</span> Trace( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  printf( <span class="stringliteral">"Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n"</span>,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  name, _maxAllocs, _maxAllocs * ITEM_SIZE / 1024, _currentAllocs,</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  ITEM_SIZE, _nAllocs, _blockPtrs.Size() );</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordtype">void</span> SetTracked() {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  --_nUntracked;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordtype">int</span> Untracked()<span class="keyword"> const </span>{</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">return</span> _nUntracked;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">// This number is perf sensitive. 4k seems like a good tradeoff on my machine.</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="comment">// The test file is large, 170k.</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="comment">// Release: VS2010 gcc(no opt)</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="comment">// 1k: 4000</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="comment">// 2k: 4000</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="comment">// 4k: 3900 21000</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="comment">// 16k: 5200</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="comment">// 32k: 4300</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="comment">// 64k: 4000 21000</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="comment">// Declared public because some compilers do not accept to use ITEMS_PER_BLOCK</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="comment">// in private part if ITEMS_PER_BLOCK is private</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keyword">enum</span> { ITEMS_PER_BLOCK = (4 * 1024) / ITEM_SIZE };</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  MemPoolT( <span class="keyword">const</span> MemPoolT& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> MemPoolT& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">union </span>Item {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  Item* next;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordtype">char</span> itemData[ITEM_SIZE];</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  };</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keyword">struct </span>Block {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  Item items[ITEMS_PER_BLOCK];</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  };</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  DynArray< Block*, 10 > _blockPtrs;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  Item* _root;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordtype">int</span> _currentAllocs;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordtype">int</span> _nAllocs;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordtype">int</span> _maxAllocs;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordtype">int</span> _nUntracked;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> };</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html"> 478</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a></div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>() {}</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d"> 484</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">VisitEnter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& <span class="comment">/*doc*/</span> ) {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  }</div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086"> 488</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& <span class="comment">/*doc*/</span> ) {</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> </div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5"> 493</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">VisitEnter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& <span class="comment">/*element*/</span>, <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <span class="comment">/*firstAttribute*/</span> ) {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6"> 497</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& <span class="comment">/*element*/</span> ) {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a"> 502</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& <span class="comment">/*declaration*/</span> ) {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  }</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b"> 506</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& <span class="comment">/*text*/</span> ) {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7"> 510</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& <span class="comment">/*comment*/</span> ) {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  }</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292"> 514</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& <span class="comment">/*unknown*/</span> ) {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> };</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="comment">// WARNING: must match XMLDocument::_errorNames[]</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">enum</span> XMLError {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  XML_SUCCESS = 0,</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  XML_NO_ATTRIBUTE,</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  XML_WRONG_ATTRIBUTE_TYPE,</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  XML_ERROR_FILE_NOT_FOUND,</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  XML_ERROR_FILE_COULD_NOT_BE_OPENED,</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  XML_ERROR_FILE_READ_ERROR,</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  XML_ERROR_PARSING_ELEMENT,</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  XML_ERROR_PARSING_ATTRIBUTE,</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  XML_ERROR_PARSING_TEXT,</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  XML_ERROR_PARSING_CDATA,</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  XML_ERROR_PARSING_COMMENT,</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  XML_ERROR_PARSING_DECLARATION,</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  XML_ERROR_PARSING_UNKNOWN,</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  XML_ERROR_EMPTY_DOCUMENT,</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  XML_ERROR_MISMATCHED_ELEMENT,</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  XML_ERROR_PARSING,</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  XML_CAN_NOT_CONVERT_TEXT,</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  XML_NO_TEXT_NODE,</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  XML_ELEMENT_DEPTH_EXCEEDED,</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  XML_ERROR_COUNT</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> };</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment">/*</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="comment"> Utility functionality.</span></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="comment">*/</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="keyword">class </span>TINYXML2_LIB XMLUtil</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span> {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* SkipWhiteSpace( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr ) {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  TIXMLASSERT( p );</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">while</span>( IsWhiteSpace(*p) ) {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">if</span> (curLineNumPtr && *p == <span class="charliteral">'\n'</span>) {</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  ++(*curLineNumPtr);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  }</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  ++p;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  TIXMLASSERT( p );</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keyword">static</span> <span class="keywordtype">char</span>* SkipWhiteSpace( <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr ) {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>( SkipWhiteSpace( const_cast<const char*>(p), curLineNumPtr ) );</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  }</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="comment">// Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't</span></div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="comment">// correct, but simple, and usually works.</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> IsWhiteSpace( <span class="keywordtype">char</span> p ) {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">return</span> !IsUTF8Continuation(p) && isspace( static_cast<unsigned char>(p) );</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsNameStartChar( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ch ) {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keywordflow">if</span> ( ch >= 128 ) {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="comment">// This is a heuristic guess in attempt to not implement Unicode-aware isalpha()</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">if</span> ( isalpha( ch ) ) {</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  }</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">return</span> ch == <span class="charliteral">':'</span> || ch == <span class="charliteral">'_'</span>;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  }</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsNameChar( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ch ) {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">return</span> IsNameStartChar( ch )</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  || isdigit( ch )</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  || ch == <span class="charliteral">'.'</span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  || ch == <span class="charliteral">'-'</span>;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  }</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> StringEqual( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keyword">const</span> <span class="keywordtype">char</span>* q, <span class="keywordtype">int</span> nChar=INT_MAX ) {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">if</span> ( p == q ) {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  }</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  TIXMLASSERT( p );</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  TIXMLASSERT( q );</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  TIXMLASSERT( nChar >= 0 );</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">return</span> strncmp( p, q, nChar ) == 0;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsUTF8Continuation( <span class="keywordtype">char</span> p ) {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">return</span> ( p & 0x80 ) != 0;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  }</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span> </div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadBOM( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">bool</span>* hasBOM );</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="comment">// p is the starting location,</span></div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="comment">// the UTF-8 value of the entity will be placed in value, and length filled in.</span></div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetCharacterRef( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span>* length );</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ConvertUTF32ToUTF8( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> input, <span class="keywordtype">char</span>* output, <span class="keywordtype">int</span>* length );</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="comment">// converts primitive types to strings</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">int</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">unsigned</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">bool</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">float</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">double</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr(int64_t v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="comment">// converts strings to primitive types</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToInt( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">int</span>* value );</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToUnsigned( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">unsigned</span>* value );</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToBool( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">bool</span>* value );</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToFloat( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">float</span>* value );</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToDouble( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">double</span>* value );</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> ToInt64(<span class="keyword">const</span> <span class="keywordtype">char</span>* str, int64_t* value);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="comment">// Changes what is serialized for a boolean value.</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="comment">// Default to "true" and "false". Shouldn't be changed</span></div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="comment">// unless you have a special testing or compatibility need.</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="comment">// Be careful: static, global, & not thread safe.</span></div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="comment">// Be sure to set static const memory as parameters.</span></div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> SetBoolSerialization(<span class="keyword">const</span> <span class="keywordtype">char</span>* writeTrue, <span class="keyword">const</span> <span class="keywordtype">char</span>* writeFalse);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* writeBoolTrue;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* writeBoolFalse;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> };</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> </div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html"> 665</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span> </div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1"> 672</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">GetDocument</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  TIXMLASSERT( _document );</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keywordflow">return</span> _document;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  }</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68"> 677</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">GetDocument</a>() {</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  TIXMLASSERT( _document );</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">return</span> _document;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8"> 683</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">ToElement</a>() {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div><div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b"> 687</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>() {</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  }</div><div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3"> 691</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>() {</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  }</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357"> 695</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">ToDocument</a>() {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  }</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51"> 699</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>() {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  }</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd"> 703</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>() {</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const </span>{</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* ToComment()<span class="keyword"> const </span>{</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* ToDocument()<span class="keyword"> const </span>{</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  }</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const </span>{</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  }</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const </span>{</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  }</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span> </div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* Value() <span class="keyword">const</span>;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> </div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keywordtype">void</span> SetValue( <span class="keyword">const</span> <span class="keywordtype">char</span>* val, <span class="keywordtype">bool</span> staticMem=<span class="keyword">false</span> );</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286"> 743</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">GetLineNum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _parseLineNum; }</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span> </div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34"> 746</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">Parent</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">return</span> _parent;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  }</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span> </div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* Parent() {</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">return</span> _parent;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  }</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span> </div><div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4"> 755</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">NoChildren</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">return</span> !_firstChild;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  }</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span> </div><div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08"> 760</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">FirstChild</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keywordflow">return</span> _firstChild;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  }</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* FirstChild() {</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">return</span> _firstChild;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span> </div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->FirstChildElement( name ));</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span> </div><div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e"> 778</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">LastChild</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">return</span> _lastChild;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  }</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* LastChild() {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <span class="keywordflow">return</span> _lastChild;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span> </div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span> </div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->LastChildElement(name) );</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  }</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div><div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551"> 796</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">PreviousSibling</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">return</span> _prev;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  }</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span> </div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* PreviousSibling() {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">return</span> _prev;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span> </div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span> ;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->PreviousSiblingElement( name ) );</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  }</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div><div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5"> 812</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">NextSibling</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  }</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span> </div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* NextSibling() {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  }</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span> </div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">></span>(<span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->NextSiblingElement( name ) );</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  }</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertEndChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span> </div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* LinkEndChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis ) {</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">return</span> InsertEndChild( addThis );</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  }</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertFirstChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertAfterChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* afterThis, <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span> </div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="keywordtype">void</span> DeleteChildren();</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span> </div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordtype">void</span> DeleteChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span> </div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span> </div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* DeepClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* target ) <span class="keyword">const</span>;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span> </div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span> </div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span> </div><div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2"> 930</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(<span class="keywordtype">void</span>* userData) { _userData = userData; }</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> </div><div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe"> 937</a></span>  <span class="keywordtype">void</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">GetUserData</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _userData; }</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* );</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>();</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span> </div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="keyword">virtual</span> <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span> </div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* _document;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _parent;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keyword">mutable</span> StrPair _value;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <span class="keywordtype">int</span> _parseLineNum;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> </div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _firstChild;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _lastChild;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span> </div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _prev;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _next;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span> </div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordtype">void</span>* _userData;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span> </div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  MemPool* _memPool;</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  <span class="keywordtype">void</span> Unlink( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* child );</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> DeleteNode( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  <span class="keywordtype">void</span> InsertChildPreamble( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* insertThis ) <span class="keyword">const</span>;</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElementWithName( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span> </div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span> };</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span> </div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span> </div><div class="line"><a name="l00982"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html"> 982</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span> {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span> </div><div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7"> 988</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">ToText</a>() {</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  }</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const </span>{</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  }</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span> </div><div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d"> 996</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">SetCData</a>( <span class="keywordtype">bool</span> isCData ) {</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  _isCData = isCData;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  }</div><div class="line"><a name="l01000"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b"> 1000</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">CData</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">return</span> _isCData;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> </div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> </div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc ) : <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( doc ), _isCData( <span class="keyword">false</span> ) {}</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>() {}</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> </div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> </div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keywordtype">bool</span> _isCData;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> </div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> };</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> </div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> </div><div class="line"><a name="l01022"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_comment.html"> 1022</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> {</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01026"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee"> 1026</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee">ToComment</a>() {</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  }</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* ToComment()<span class="keyword"> const </span>{</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  }</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> </div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> </div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> </div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>();</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> </div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> </div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> };</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> </div><div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_declaration.html"> 1061</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> {</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5"> 1065</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5">ToDeclaration</a>() {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  }</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const </span>{</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> </div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> </div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> </div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>();</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> </div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> };</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> </div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> </div><div class="line"><a name="l01096"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_unknown.html"> 1096</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> {</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01100"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6"> 1100</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6">ToUnknown</a>() {</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  }</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const </span>{</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  }</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> </div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> </div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> </div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>();</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> </div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> </div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> };</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> </div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> </div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> </div><div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html"> 1131</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a></div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> {</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* Name() <span class="keyword">const</span>;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> </div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* Value() <span class="keyword">const</span>;</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> </div><div class="line"><a name="l01142"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765"> 1142</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">GetLineNum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _parseLineNum; }</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> </div><div class="line"><a name="l01145"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6"> 1145</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6">Next</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  }</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> </div><div class="line"><a name="l01153"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80"> 1153</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">IntValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  QueryIntValue(&i);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  }</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> </div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  int64_t Int64Value()<span class="keyword"> const </span>{</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  int64_t i = 0;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  QueryInt64Value(&i);</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  }</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div><div class="line"><a name="l01166"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338"> 1166</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338">UnsignedValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  <span class="keywordtype">unsigned</span> i=0;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  QueryUnsignedValue( &i );</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  }</div><div class="line"><a name="l01172"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff"> 1172</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff">BoolValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  <span class="keywordtype">bool</span> b=<span class="keyword">false</span>;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  QueryBoolValue( &b );</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  <span class="keywordflow">return</span> b;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  }</div><div class="line"><a name="l01178"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f"> 1178</a></span>  <span class="keywordtype">double</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f">DoubleValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  <span class="keywordtype">double</span> d=0;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>  QueryDoubleValue( &d );</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  <span class="keywordflow">return</span> d;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  }</div><div class="line"><a name="l01184"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801"> 1184</a></span>  <span class="keywordtype">float</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801">FloatValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <span class="keywordtype">float</span> f=0;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  QueryFloatValue( &f );</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  <span class="keywordflow">return</span> f;</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  }</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> </div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  XMLError QueryIntValue( <span class="keywordtype">int</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  XMLError QueryUnsignedValue( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  XMLError QueryInt64Value(int64_t* value) <span class="keyword">const</span>;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  XMLError QueryBoolValue( <span class="keywordtype">bool</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  XMLError QueryDoubleValue( <span class="keywordtype">double</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>  XMLError QueryFloatValue( <span class="keywordtype">float</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> </div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  <span class="keywordtype">void</span> SetAttribute(int64_t value);</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>  <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> </div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  <span class="keyword">enum</span> { BUF_SIZE = 200 };</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> </div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>() : _name(), _value(),_parseLineNum( 0 ), _next( 0 ), _memPool( 0 ) {}</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>() {}</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> </div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>  <span class="keywordtype">void</span> SetName( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> </div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, <span class="keywordtype">bool</span> processEntities, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> </div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>  <span class="keyword">mutable</span> StrPair _name;</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  <span class="keyword">mutable</span> StrPair _value;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>  <span class="keywordtype">int</span> _parseLineNum;</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* _next;</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>  MemPool* _memPool;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> };</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> </div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> </div><div class="line"><a name="l01245"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html"> 1245</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> {</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01250"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35"> 1250</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35">Name</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  <span class="keywordflow">return</span> Value();</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  }</div><div class="line"><a name="l01254"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1"> 1254</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">SetName</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">bool</span> staticMem=<span class="keyword">false</span> ) {</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  SetValue( str, staticMem );</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>  }</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> </div><div class="line"><a name="l01258"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d"> 1258</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">ToElement</a>() {</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>  }</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  }</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> </div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* Attribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value=0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> </div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  <span class="keywordtype">int</span> IntAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  <span class="keywordtype">unsigned</span> UnsignedAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>  int64_t Int64Attribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  <span class="keywordtype">bool</span> BoolAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> defaultValue = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <span class="keywordtype">double</span> DoubleAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  <span class="keywordtype">float</span> FloatAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> </div><div class="line"><a name="l01322"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1"> 1322</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  }</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">QueryIntValue</a>( value );</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  }</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> </div><div class="line"><a name="l01331"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f"> 1331</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">QueryUnsignedAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  }</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9">QueryUnsignedValue</a>( value );</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  }</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> </div><div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8"> 1340</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8">QueryInt64Attribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t* value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute(name);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  <span class="keywordflow">if</span> (!a) {</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  }</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2">QueryInt64Value</a>(value);</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  }</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> </div><div class="line"><a name="l01349"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872"> 1349</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">QueryBoolAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  }</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c">QueryBoolValue</a>( value );</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  }</div><div class="line"><a name="l01357"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c"> 1357</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">QueryDoubleAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  }</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9">QueryDoubleValue</a>( value );</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  }</div><div class="line"><a name="l01365"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5"> 1365</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">QueryFloatAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  }</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  <span class="keywordflow">return</span> a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607">QueryFloatValue</a>( value );</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>  }</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> </div><div class="line"><a name="l01374"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc"> 1374</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">QueryStringAttribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>** value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute(name);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>  <span class="keywordflow">if</span> (!a) {</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>  <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  }</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  *value = a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a1aab1dd0e43ecbcfa306adbcf3a3d853">Value</a>();</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  <span class="keywordflow">return</span> XML_SUCCESS;</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  }</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> </div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> </div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> </div><div class="line"><a name="l01402"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb"> 1402</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  <span class="keywordflow">return</span> QueryIntAttribute( name, value );</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  }</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> </div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  XMLError QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <span class="keywordflow">return</span> QueryUnsignedAttribute( name, value );</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  }</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> </div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  XMLError QueryAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t* value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  <span class="keywordflow">return</span> QueryInt64Attribute(name, value);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  }</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> </div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  XMLError QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  <span class="keywordflow">return</span> QueryBoolAttribute( name, value );</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  }</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> </div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  XMLError QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  <span class="keywordflow">return</span> QueryDoubleAttribute( name, value );</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  }</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> </div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  XMLError QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <span class="keywordflow">return</span> QueryFloatAttribute( name, value );</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  }</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> </div><div class="line"><a name="l01427"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c"> 1427</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value ) {</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  }</div><div class="line"><a name="l01432"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf"> 1432</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> value ) {</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  }</div><div class="line"><a name="l01437"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f"> 1437</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> value ) {</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  }</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> </div><div class="line"><a name="l01443"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd"> 1443</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">SetAttribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t value) {</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute(name);</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>(value);</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  }</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> </div><div class="line"><a name="l01449"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1"> 1449</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> value ) {</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  }</div><div class="line"><a name="l01454"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533"> 1454</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> value ) {</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  }</div><div class="line"><a name="l01459"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759"> 1459</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span> value ) {</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>  a-><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  }</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> </div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  <span class="keywordtype">void</span> DeleteAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> </div><div class="line"><a name="l01470"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686"> 1470</a></span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686">FirstAttribute</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  <span class="keywordflow">return</span> _rootAttribute;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  }</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> </div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* GetText() <span class="keyword">const</span>;</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> </div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>  <span class="keywordtype">void</span> SetText( <span class="keyword">const</span> <span class="keywordtype">char</span>* inText );</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>  <span class="keywordtype">void</span> SetText(int64_t value);</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  <span class="keywordtype">void</span> SetText( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> </div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  XMLError QueryIntText( <span class="keywordtype">int</span>* ival ) <span class="keyword">const</span>;</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>  XMLError QueryUnsignedText( <span class="keywordtype">unsigned</span>* uval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>  XMLError QueryInt64Text(int64_t* uval) <span class="keyword">const</span>;</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  XMLError QueryBoolText( <span class="keywordtype">bool</span>* bval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  XMLError QueryDoubleText( <span class="keywordtype">double</span>* dval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  XMLError QueryFloatText( <span class="keywordtype">float</span>* fval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> </div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  <span class="keywordtype">int</span> IntText(<span class="keywordtype">int</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> </div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  <span class="keywordtype">unsigned</span> UnsignedText(<span class="keywordtype">unsigned</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  int64_t Int64Text(int64_t defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  <span class="keywordtype">bool</span> BoolText(<span class="keywordtype">bool</span> defaultValue = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <span class="keywordtype">double</span> DoubleText(<span class="keywordtype">double</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  <span class="keywordtype">float</span> FloatText(<span class="keywordtype">float</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> </div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>  <span class="comment">// internal:</span></div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  <span class="keyword">enum</span> ElementClosingType {</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  OPEN, <span class="comment">// <foo></span></div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  CLOSED, <span class="comment">// <foo/></span></div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  CLOSING <span class="comment">// </foo></span></div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  };</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>  ElementClosingType ClosingType()<span class="keyword"> const </span>{</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>  <span class="keywordflow">return</span> _closingType;</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  }</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> </div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> </div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>();</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> </div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindOrCreateAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  <span class="keywordtype">char</span>* ParseAttributes( <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> DeleteAttribute( <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* attribute );</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* CreateAttribute();</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> </div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  <span class="keyword">enum</span> { BUF_SIZE = 200 };</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  ElementClosingType _closingType;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>  <span class="comment">// The attribute list is ordered; there is no 'lastAttribute'</span></div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  <span class="comment">// because the list needs to be scanned for dupes before adding</span></div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>  <span class="comment">// a new attribute.</span></div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* _rootAttribute;</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> };</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> </div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> </div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="keyword">enum</span> Whitespace {</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  PRESERVE_WHITESPACE,</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  COLLAPSE_WHITESPACE</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> };</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> </div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> </div><div class="line"><a name="l01651"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html"> 1651</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> {</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  <span class="comment">// Gives access to SetError and Push/PopDepth, but over-access for everything else.</span></div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  <span class="comment">// Wishing C++ had "internal" scope.</span></div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>;</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>;</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>;</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>( <span class="keywordtype">bool</span> processEntities = <span class="keyword">true</span>, Whitespace whitespaceMode = PRESERVE_WHITESPACE );</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>  ~<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>();</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> </div><div class="line"><a name="l01666"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec"> 1666</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">ToDocument</a>() {</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>  TIXMLASSERT( <span class="keyword">this</span> == _document );</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>  }</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* ToDocument()<span class="keyword"> const </span>{</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  TIXMLASSERT( <span class="keyword">this</span> == _document );</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  }</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> </div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>  XMLError Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* xml, <span class="keywordtype">size_t</span> nBytes=(<span class="keywordtype">size_t</span>)(-1) );</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> </div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  XMLError LoadFile( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename );</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> </div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  XMLError LoadFile( FILE* );</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> </div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>  XMLError SaveFile( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span> );</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> </div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>  XMLError SaveFile( FILE* fp, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span> );</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> </div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>  <span class="keywordtype">bool</span> ProcessEntities()<span class="keyword"> const </span>{</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>  <span class="keywordflow">return</span> _processEntities;</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>  }</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  Whitespace WhitespaceMode()<span class="keyword"> const </span>{</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <span class="keywordflow">return</span> _whitespaceMode;</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  }</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> </div><div class="line"><a name="l01733"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd"> 1733</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">HasBOM</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>  <span class="keywordflow">return</span> _writeBOM;</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>  }</div><div class="line"><a name="l01738"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0"> 1738</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">SetBOM</a>( <span class="keywordtype">bool</span> useBOM ) {</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>  _writeBOM = useBOM;</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>  }</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> </div><div class="line"><a name="l01745"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c"> 1745</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">RootElement</a>() {</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>  <span class="keywordflow">return</span> FirstChildElement();</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>  }</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* RootElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>  <span class="keywordflow">return</span> FirstChildElement();</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>  }</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> </div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>  <span class="keywordtype">void</span> Print( <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>* streamer=0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> </div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NewElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* NewComment( <span class="keyword">const</span> <span class="keywordtype">char</span>* comment );</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* NewText( <span class="keyword">const</span> <span class="keywordtype">char</span>* text );</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* NewDeclaration( <span class="keyword">const</span> <span class="keywordtype">char</span>* text=0 );</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* NewUnknown( <span class="keyword">const</span> <span class="keywordtype">char</span>* text );</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> </div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>  <span class="keywordtype">void</span> DeleteNode( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> </div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>  <span class="keywordtype">void</span> ClearError() {</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>  SetError(XML_SUCCESS, 0, 0);</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>  }</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> </div><div class="line"><a name="l01817"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed"> 1817</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">Error</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>  <span class="keywordflow">return</span> _errorID != XML_SUCCESS;</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>  }</div><div class="line"><a name="l01821"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d"> 1821</a></span>  XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">ErrorID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>  <span class="keywordflow">return</span> _errorID;</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>  }</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorName() <span class="keyword">const</span>;</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorIDToName(XMLError errorID);</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> </div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorStr() <span class="keyword">const</span>;</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> </div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>  <span class="keywordtype">void</span> PrintError() <span class="keyword">const</span>;</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> </div><div class="line"><a name="l01836"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76"> 1836</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">ErrorLineNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="keyword"> </span>{</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>  <span class="keywordflow">return</span> _errorLineNum;</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>  }</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> </div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>  <span class="keywordtype">void</span> Clear();</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span> </div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>  <span class="keywordtype">void</span> DeepCopy(<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* target) <span class="keyword">const</span>;</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span> </div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>  <span class="comment">// internal</span></div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>  <span class="keywordtype">char</span>* Identify( <span class="keywordtype">char</span>* p, <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>** node );</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> </div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>  <span class="comment">// internal</span></div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>  <span class="keywordtype">void</span> MarkInUse(<a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*);</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> </div><div class="line"><a name="l01859"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8"> 1859</a></span>  <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">ShallowClone</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <span class="comment">/*document*/</span> )<span class="keyword"> const </span>{</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>  }</div><div class="line"><a name="l01862"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9"> 1862</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">ShallowEqual</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <span class="comment">/*compare*/</span> )<span class="keyword"> const </span>{</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>  }</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> </div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>  <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& ); <span class="comment">// not supported</span></div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> </div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>  <span class="keywordtype">bool</span> _writeBOM;</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>  <span class="keywordtype">bool</span> _processEntities;</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>  XMLError _errorID;</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>  Whitespace _whitespaceMode;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>  <span class="keyword">mutable</span> StrPair _errorStr;</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>  <span class="keywordtype">int</span> _errorLineNum;</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>  <span class="keywordtype">char</span>* _charBuffer;</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>  <span class="keywordtype">int</span> _parseCurLineNum;</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>  <span class="keywordtype">int</span> _parsingDepth;</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>  <span class="comment">// Memory tracking does add some overhead.</span></div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>  <span class="comment">// However, the code assumes that you don't</span></div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>  <span class="comment">// have a bunch of unlinked nodes around.</span></div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>  <span class="comment">// Therefore it takes less memory to track</span></div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>  <span class="comment">// in the document vs. a linked list in the XMLNode,</span></div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>  <span class="comment">// and the performance is the same.</span></div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>  DynArray<XMLNode*, 10> _unlinked;</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> </div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>  MemPoolT< sizeof(XMLElement) > _elementPool;</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>  MemPoolT< sizeof(XMLAttribute) > _attributePool;</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>  MemPoolT< sizeof(XMLText) > _textPool;</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>  MemPoolT< sizeof(XMLComment) > _commentPool;</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> </div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* _errorNames[XML_ERROR_COUNT];</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> </div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>  <span class="keywordtype">void</span> Parse();</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> </div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>  <span class="keywordtype">void</span> SetError( XMLError error, <span class="keywordtype">int</span> lineNum, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> </div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>  <span class="comment">// Something of an obvious security hole, once it was discovered.</span></div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>  <span class="comment">// Either an ill-formed XML or an excessively deep one can overflow</span></div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>  <span class="comment">// the stack. Track stack depth, and error out if needed.</span></div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>  <span class="keyword">class </span>DepthTracker {</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>  <span class="keyword">explicit</span> DepthTracker(<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> * document) {</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>  this->_document = document;</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>  document->PushDepth();</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>  }</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>  ~DepthTracker() {</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>  _document->PopDepth();</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>  }</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> * _document;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>  };</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>  <span class="keywordtype">void</span> PushDepth();</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>  <span class="keywordtype">void</span> PopDepth();</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> </div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>  <span class="keyword">template</span><<span class="keyword">class</span> NodeType, <span class="keywordtype">int</span> PoolElementSize></div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>  NodeType* CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool );</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span> };</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> </div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span> <span class="keyword">template</span><<span class="keyword">class</span> NodeType, <span class="keywordtype">int</span> PoolElementSize></div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span> <span class="keyword">inline</span> NodeType* XMLDocument::CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool )</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span> {</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>  TIXMLASSERT( <span class="keyword">sizeof</span>( NodeType ) == PoolElementSize );</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>  TIXMLASSERT( <span class="keyword">sizeof</span>( NodeType ) == pool.ItemSize() );</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>  NodeType* returnNode = <span class="keyword">new</span> (pool.Alloc()) NodeType( <span class="keyword">this</span> );</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>  TIXMLASSERT( returnNode );</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>  returnNode->_memPool = &pool;</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> </div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>  _unlinked.Push(returnNode);</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>  <span class="keywordflow">return</span> returnNode;</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> }</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> </div><div class="line"><a name="l01988"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html"> 1988</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a></div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> {</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01992"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793"> 1992</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">XMLHandle</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node ) : _node( node ) {</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>  }</div><div class="line"><a name="l01995"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500"> 1995</a></span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">XMLHandle</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& node ) : _node( &node ) {</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>  }</div><div class="line"><a name="l01998"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa"> 1998</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">XMLHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>& ref ) : _node( ref._node ) {</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>  }</div><div class="line"><a name="l02001"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20"> 2001</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>& <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20">operator=</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>& ref ) {</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>  _node = ref._node;</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>  }</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> </div><div class="line"><a name="l02007"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae"> 2007</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae">FirstChild</a>() {</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->FirstChild() : 0 );</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>  }</div><div class="line"><a name="l02011"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3"> 2011</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->FirstChildElement( name ) : 0 );</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>  }</div><div class="line"><a name="l02015"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b"> 2015</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b">LastChild</a>() {</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->LastChild() : 0 );</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>  }</div><div class="line"><a name="l02019"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c"> 2019</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c">LastChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->LastChildElement( name ) : 0 );</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>  }</div><div class="line"><a name="l02023"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c"> 2023</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c">PreviousSibling</a>() {</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->PreviousSibling() : 0 );</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>  }</div><div class="line"><a name="l02027"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e"> 2027</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e">PreviousSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->PreviousSiblingElement( name ) : 0 );</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>  }</div><div class="line"><a name="l02031"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5"> 2031</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5">NextSibling</a>() {</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->NextSibling() : 0 );</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>  }</div><div class="line"><a name="l02035"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5"> 2035</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5">NextSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node->NextSiblingElement( name ) : 0 );</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>  }</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> </div><div class="line"><a name="l02040"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df"> 2040</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">ToNode</a>() {</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>  <span class="keywordflow">return</span> _node;</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>  }</div><div class="line"><a name="l02044"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99"> 2044</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99">ToElement</a>() {</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>  <span class="keywordflow">return</span> ( _node ? _node->ToElement() : 0 );</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>  }</div><div class="line"><a name="l02048"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a"> 2048</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">ToText</a>() {</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>  <span class="keywordflow">return</span> ( _node ? _node->ToText() : 0 );</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>  }</div><div class="line"><a name="l02052"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de"> 2052</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">ToUnknown</a>() {</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>  <span class="keywordflow">return</span> ( _node ? _node->ToUnknown() : 0 );</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>  }</div><div class="line"><a name="l02056"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0"> 2056</a></span>  <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0">ToDeclaration</a>() {</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>  <span class="keywordflow">return</span> ( _node ? _node->ToDeclaration() : 0 );</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>  }</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> </div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> <span class="keyword">private</span>:</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _node;</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> };</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> </div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> </div><div class="line"><a name="l02069"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_const_handle.html"> 2069</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a></div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> {</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span> <span class="keyword">public</span>:</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node ) : _node( node ) {</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>  }</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>  <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>& node ) : _node( &node ) {</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>  }</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>& ref ) : _node( ref._node ) {</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>  }</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> </div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>& ref ) {</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>  _node = ref._node;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>  }</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span> </div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> FirstChild()<span class="keyword"> const </span>{</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->FirstChild() : 0 );</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>  }</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->FirstChildElement( name ) : 0 );</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>  }</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> LastChild()<span class="keyword"> const </span>{</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->LastChild() : 0 );</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>  }</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->LastChildElement( name ) : 0 );</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>  }</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> PreviousSibling()<span class="keyword"> const </span>{</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->PreviousSibling() : 0 );</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>  }</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->PreviousSiblingElement( name ) : 0 );</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>  }</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> NextSibling()<span class="keyword"> const </span>{</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->NextSibling() : 0 );</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>  }</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const </span>{</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>  <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node->NextSiblingElement( name ) : 0 );</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>  }</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span> </div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span> </div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ToNode()<span class="keyword"> const </span>{</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>  <span class="keywordflow">return</span> _node;</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>  }</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>  <span class="keywordflow">return</span> ( _node ? _node->ToElement() : 0 );</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>  }</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const </span>{</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>  <span class="keywordflow">return</span> ( _node ? _node->ToText() : 0 );</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>  }</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const </span>{</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>  <span class="keywordflow">return</span> ( _node ? _node->ToUnknown() : 0 );</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>  }</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const </span>{</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>  <span class="keywordflow">return</span> ( _node ? _node->ToDeclaration() : 0 );</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>  }</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span> </div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> <span class="keyword">private</span>:</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>  <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _node;</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span> };</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span> </div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> </div><div class="line"><a name="l02173"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html"> 2173</a></span> <span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a></div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span> {</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> <span class="keyword">public</span>:</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>( FILE* file=0, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span>, <span class="keywordtype">int</span> depth = 0 );</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>  <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>() {}</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span> </div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>  <span class="keywordtype">void</span> PushHeader( <span class="keywordtype">bool</span> writeBOM, <span class="keywordtype">bool</span> writeDeclaration );</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>  <span class="keywordtype">void</span> OpenElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> compactMode=<span class="keyword">false</span> );</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> value );</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>  <span class="keywordtype">void</span> PushAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t value);</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>  <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> value );</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> CloseElement( <span class="keywordtype">bool</span> compactMode=<span class="keyword">false</span> );</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span> </div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>  <span class="keywordtype">void</span> PushText( <span class="keyword">const</span> <span class="keywordtype">char</span>* text, <span class="keywordtype">bool</span> cdata=<span class="keyword">false</span> );</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>  <span class="keywordtype">void</span> PushText(int64_t value);</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>  <span class="keywordtype">void</span> PushText( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> </div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>  <span class="keywordtype">void</span> PushComment( <span class="keyword">const</span> <span class="keywordtype">char</span>* comment );</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> </div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>  <span class="keywordtype">void</span> PushDeclaration( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>  <span class="keywordtype">void</span> PushUnknown( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span> </div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitEnter( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& <span class="comment">/*doc*/</span> );</div><div class="line"><a name="l02223"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29"> 2223</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>& <span class="comment">/*doc*/</span> ) {</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>  }</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span> </div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitEnter( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& element, <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* attribute );</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitExit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& element );</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> </div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>& text );</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>& comment );</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>& declaration );</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>& unknown );</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span> </div><div class="line"><a name="l02239"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e"> 2239</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">CStr</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>  <span class="keywordflow">return</span> _buffer.Mem();</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>  }</div><div class="line"><a name="l02247"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c"> 2247</a></span>  <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c">CStrSize</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>  <span class="keywordflow">return</span> _buffer.Size();</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>  }</div><div class="line"><a name="l02254"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909"> 2254</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909">ClearBuffer</a>() {</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>  _buffer.Clear();</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>  _buffer.Push(0);</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>  _firstElement = <span class="keyword">true</span>;</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>  }</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> </div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> CompactMode( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>& ) { <span class="keywordflow">return</span> _compactMode; }</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span> </div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> PrintSpace( <span class="keywordtype">int</span> depth );</div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>  <span class="keywordtype">void</span> Print( <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>  <span class="keywordtype">void</span> Write( <span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span> size );</div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> Write( <span class="keyword">const</span> <span class="keywordtype">char</span>* data ) { Write( data, strlen( data ) ); }</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>  <span class="keywordtype">void</span> Putc( <span class="keywordtype">char</span> ch );</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> </div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>  <span class="keywordtype">void</span> SealElementIfJustOpened();</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>  <span class="keywordtype">bool</span> _elementJustOpened;</div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>  DynArray< const char*, 10 > _stack;</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> </div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <span class="keyword">private</span>:</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>  <span class="keywordtype">void</span> PrintString( <span class="keyword">const</span> <span class="keywordtype">char</span>*, <span class="keywordtype">bool</span> restrictedEntitySet ); <span class="comment">// prints out, after detecting entities.</span></div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> </div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>  <span class="keywordtype">bool</span> _firstElement;</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>  FILE* _fp;</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>  <span class="keywordtype">int</span> _depth;</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>  <span class="keywordtype">int</span> _textDepth;</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>  <span class="keywordtype">bool</span> _processEntities;</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>  <span class="keywordtype">bool</span> _compactMode;</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> </div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>  <span class="keyword">enum</span> {</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>  ENTITY_RANGE = 64,</div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>  BUF_SIZE = 200</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>  };</div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>  <span class="keywordtype">bool</span> _entityFlag[ENTITY_RANGE];</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>  <span class="keywordtype">bool</span> _restrictedEntityFlag[ENTITY_RANGE];</div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> </div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>  DynArray< char, 20 > _buffer;</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span> </div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>  <span class="comment">// Prohibit cloning, intentionally not implemented</span></div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>& );</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>  <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>& operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>& );</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> };</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> </div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> </div><div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> } <span class="comment">// tinyxml2</span></div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> </div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> <span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="preprocessor"># pragma warning(pop)</span></div><div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> </div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="preprocessor">#endif // TINYXML2_INCLUDED</span></div><div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a7c0955d80b6f8d196744eacb0f6e90a8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8">tinyxml2::XMLElement::QueryInt64Attribute</a></div><div class="ttdeci">XMLError QueryInt64Attribute(const char *name, int64_t *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1340</div></div>
<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a6d5176260db00ea301c01af8457cd993"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">tinyxml2::XMLAttribute::QueryIntValue</a></div><div class="ttdeci">XMLError QueryIntValue(int *value) const</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a14c1bb77c39689838be01838d86ca872"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">tinyxml2::XMLElement::QueryBoolAttribute</a></div><div class="ttdeci">XMLError QueryBoolAttribute(const char *name, bool *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1340</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a170e9989cd046ba904f302d087e07086"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">tinyxml2::XMLVisitor::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLDocument &)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:478</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_aa37cc1709d7e1e988bc17dcfb24a69b8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">tinyxml2::XMLDocument::ShallowClone</a></div><div class="ttdeci">virtual XMLNode * ShallowClone(XMLDocument *) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1843</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a6fe5ef18699091844fcf64b56ffa5bf9"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">tinyxml2::XMLDocument::ShallowEqual</a></div><div class="ttdeci">virtual bool ShallowEqual(const XMLNode *) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1846</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a74b04dd0f15e0bf01860e282b840b6a3"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3">tinyxml2::XMLHandle::FirstChildElement</a></div><div class="ttdeci">XMLHandle FirstChildElement(const char *name=0)</div><div class="ttdoc">Get the first child element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1976</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a6ab9e8cbfb41417246e5657e3842c62a"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">tinyxml2::XMLHandle::ToText</a></div><div class="ttdeci">XMLText * ToText()</div><div class="ttdoc">Safe cast to XMLText. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2013</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a14c1bb77c39689838be01838d86ca872"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">tinyxml2::XMLElement::QueryBoolAttribute</a></div><div class="ttdeci">XMLError QueryBoolAttribute(const char *name, bool *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1349</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a170e9989cd046ba904f302d087e07086"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">tinyxml2::XMLVisitor::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLDocument &)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:488</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_aa37cc1709d7e1e988bc17dcfb24a69b8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">tinyxml2::XMLDocument::ShallowClone</a></div><div class="ttdeci">virtual XMLNode * ShallowClone(XMLDocument *) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1859</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a6fe5ef18699091844fcf64b56ffa5bf9"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">tinyxml2::XMLDocument::ShallowEqual</a></div><div class="ttdeci">virtual bool ShallowEqual(const XMLNode *) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1862</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a74b04dd0f15e0bf01860e282b840b6a3"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3">tinyxml2::XMLHandle::FirstChildElement</a></div><div class="ttdeci">XMLHandle FirstChildElement(const char *name=0)</div><div class="ttdoc">Get the first child element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2011</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a6ab9e8cbfb41417246e5657e3842c62a"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">tinyxml2::XMLHandle::ToText</a></div><div class="ttdeci">XMLText * ToText()</div><div class="ttdoc">Safe cast to XMLText. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2048</div></div>
<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a049dea6449a6259b6cfed44a9427b607"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607">tinyxml2::XMLAttribute::QueryFloatValue</a></div><div class="ttdeci">XMLError QueryFloatValue(float *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a180671d73844f159f2d4aafbc11d106e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">tinyxml2::XMLPrinter::CStr</a></div><div class="ttdeci">const char * CStr() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2204</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_afa3ed33b3107f920ec2b301f805ac17d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">tinyxml2::XMLDocument::ErrorID</a></div><div class="ttdeci">XMLError ErrorID() const</div><div class="ttdoc">Return the errorID. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1805</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a5e73ed8f3f6f9619d5a8bb1862c47d99"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99">tinyxml2::XMLHandle::ToElement</a></div><div class="ttdeci">XMLElement * ToElement()</div><div class="ttdoc">Safe cast to XMLElement. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2009</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aab516e699567f75cc9ab2ef2eee501e8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">tinyxml2::XMLNode::ToElement</a></div><div class="ttdeci">virtual XMLElement * ToElement()</div><div class="ttdoc">Safely cast to an Element, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:674</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a41c55dab9162d1eb62db2008430e376b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">tinyxml2::XMLNode::ToText</a></div><div class="ttdeci">virtual XMLText * ToText()</div><div class="ttdoc">Safely cast to Text, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:678</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a26fc84cbfba6769dafcfbf256c05e22f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">tinyxml2::XMLElement::QueryUnsignedAttribute</a></div><div class="ttdeci">XMLError QueryUnsignedAttribute(const char *name, unsigned int *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1322</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a3256cf3523d4898b91abb18b924be04c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c">tinyxml2::XMLPrinter::CStrSize</a></div><div class="ttdeci">int CStrSize() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2212</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a27797b45d21c981257720db94f5f8801"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801">tinyxml2::XMLAttribute::FloatValue</a></div><div class="ttdeci">float FloatValue() const</div><div class="ttdoc">Query as a float. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1175</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a3e185f880882bd978367bb55937735ec"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">tinyxml2::XMLDocument::ToDocument</a></div><div class="ttdeci">virtual XMLDocument * ToDocument()</div><div class="ttdoc">Safely cast to a Document, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1650</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aa387368a1ad8d843a9f12df863d298de"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">tinyxml2::XMLHandle::ToUnknown</a></div><div class="ttdeci">XMLUnknown * ToUnknown()</div><div class="ttdoc">Safe cast to XMLUnknown. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2017</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a63e057fb5baee1dd29f323cb85907b35"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35">tinyxml2::XMLElement::Name</a></div><div class="ttdeci">const char * Name() const</div><div class="ttdoc">Get the name of an element (which is the Value() of the node.) </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1241</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_afd8e01e6018c07347b8e6d80272466aa"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(const XMLHandle &ref)</div><div class="ttdoc">Copy constructor. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1963</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a536447dc7f54c0cd11e031dad94795ae"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae">tinyxml2::XMLHandle::FirstChild</a></div><div class="ttdeci">XMLHandle FirstChild()</div><div class="ttdoc">Get the first child of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1972</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ad080357d76ab7cc59d7651249949329d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">tinyxml2::XMLText::SetCData</a></div><div class="ttdeci">void SetCData(bool isCData)</div><div class="ttdoc">Declare whether this should be CDATA or standard text. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:987</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a002978fc889cc011d143185f2377eca2"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">tinyxml2::XMLNode::SetUserData</a></div><div class="ttdeci">void SetUserData(void *userData)</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:921</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a79db9ef0fe014d27790f2218b87bcbb5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">tinyxml2::XMLNode::NextSibling</a></div><div class="ttdeci">const XMLNode * NextSibling() const</div><div class="ttdoc">Get the next (right) sibling node of this node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:803</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a0be5343b08a957c42c02c5d32c35d338"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338">tinyxml2::XMLAttribute::UnsignedValue</a></div><div class="ttdeci">unsigned UnsignedValue() const</div><div class="ttdoc">Query as an unsigned integer. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1157</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a42cccd0ce8b1ce704f431025e9f19e0c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c">tinyxml2::XMLHandle::LastChildElement</a></div><div class="ttdeci">XMLHandle LastChildElement(const char *name=0)</div><div class="ttdoc">Get the last child element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1984</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a9d09f04435f0f2f7d0816b0198d0517b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b">tinyxml2::XMLHandle::LastChild</a></div><div class="ttdeci">XMLHandle LastChild()</div><div class="ttdoc">Get the last child of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1980</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1953</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_declaration_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_declaration.html">tinyxml2::XMLDeclaration</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1052</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_ad2b70320d3c2a071c2f36928edff3e1c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">tinyxml2::XMLDocument::RootElement</a></div><div class="ttdeci">XMLElement * RootElement()</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1729</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a042fc30504347b84a56cf863ad528a4f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">tinyxml2::XMLElement::QueryAttribute</a></div><div class="ttdeci">int QueryAttribute(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1382</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ab1213b4ddebe9b17ec7e7040e9f1caf7"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">tinyxml2::XMLText::ToText</a></div><div class="ttdeci">virtual XMLText * ToText()</div><div class="ttdoc">Safely cast to Text, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:979</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aa2edbc1c0d3e3e8259bd98de7f1cf500"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(XMLNode &node)</div><div class="ttdoc">Create a handle from a node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1960</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a97712009a530d8cb8a63bf705f02b4f1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">tinyxml2::XMLElement::SetName</a></div><div class="ttdeci">void SetName(const char *str, bool staticMem=false)</div><div class="ttdoc">Set the name of the element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1245</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a14419b698f7c4b140df4e80f3f0c93b0"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">tinyxml2::XMLDocument::SetBOM</a></div><div class="ttdeci">void SetBOM(bool useBOM)</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1722</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a9c240a35c18f053509b4b97ddccd9793"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(XMLNode *node)</div><div class="ttdoc">Create a handle from any node (at any depth of the tree.) This can be a null pointer. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1957</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a216157765b7267bf389975b1cbf9a909"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909">tinyxml2::XMLPrinter::ClearBuffer</a></div><div class="ttdeci">void ClearBuffer()</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2219</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_comment_html_a8093e1dc8a34fa446d9dc3fde0e6c0ee"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee">tinyxml2::XMLComment::ToComment</a></div><div class="ttdeci">virtual XMLComment * ToComment()</div><div class="ttdoc">Safely cast to a Comment, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1017</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_ad9ff5c2dbc15df36cf664ce1b0ea0a5d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">tinyxml2::XMLElement::ToElement</a></div><div class="ttdeci">virtual XMLElement * ToElement()</div><div class="ttdoc">Safely cast to an Element, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1249</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a33fc5d159db873a179fa26338adb05bd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">tinyxml2::XMLDocument::HasBOM</a></div><div class="ttdeci">bool HasBOM() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1717</div></div>
-<div class="ttc" id="namespacetinyxml2_html"><div class="ttname"><a href="namespacetinyxml2.html">tinyxml2</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:105</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_acd5eeddf6002ef90806af794b9d9a5a5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">tinyxml2::XMLElement::QueryFloatAttribute</a></div><div class="ttdeci">XMLError QueryFloatAttribute(const char *name, float *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1356</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a180671d73844f159f2d4aafbc11d106e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">tinyxml2::XMLPrinter::CStr</a></div><div class="ttdeci">const char * CStr() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2239</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_afa3ed33b3107f920ec2b301f805ac17d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">tinyxml2::XMLDocument::ErrorID</a></div><div class="ttdeci">XMLError ErrorID() const</div><div class="ttdoc">Return the errorID. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1821</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a5e73ed8f3f6f9619d5a8bb1862c47d99"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99">tinyxml2::XMLHandle::ToElement</a></div><div class="ttdeci">XMLElement * ToElement()</div><div class="ttdoc">Safe cast to XMLElement. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2044</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aab516e699567f75cc9ab2ef2eee501e8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">tinyxml2::XMLNode::ToElement</a></div><div class="ttdeci">virtual XMLElement * ToElement()</div><div class="ttdoc">Safely cast to an Element, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:683</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_adb8ae765f98d0c5037faec48deea78bc"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">tinyxml2::XMLElement::QueryStringAttribute</a></div><div class="ttdeci">XMLError QueryStringAttribute(const char *name, const char **value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1374</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a41c55dab9162d1eb62db2008430e376b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">tinyxml2::XMLNode::ToText</a></div><div class="ttdeci">virtual XMLText * ToText()</div><div class="ttdoc">Safely cast to Text, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:687</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a26fc84cbfba6769dafcfbf256c05e22f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">tinyxml2::XMLElement::QueryUnsignedAttribute</a></div><div class="ttdeci">XMLError QueryUnsignedAttribute(const char *name, unsigned int *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1331</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a3256cf3523d4898b91abb18b924be04c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c">tinyxml2::XMLPrinter::CStrSize</a></div><div class="ttdeci">int CStrSize() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2247</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a27797b45d21c981257720db94f5f8801"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801">tinyxml2::XMLAttribute::FloatValue</a></div><div class="ttdeci">float FloatValue() const</div><div class="ttdoc">Query as a float. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1184</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a3e185f880882bd978367bb55937735ec"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">tinyxml2::XMLDocument::ToDocument</a></div><div class="ttdeci">virtual XMLDocument * ToDocument()</div><div class="ttdoc">Safely cast to a Document, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1666</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aa387368a1ad8d843a9f12df863d298de"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">tinyxml2::XMLHandle::ToUnknown</a></div><div class="ttdeci">XMLUnknown * ToUnknown()</div><div class="ttdoc">Safe cast to XMLUnknown. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2052</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a63e057fb5baee1dd29f323cb85907b35"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35">tinyxml2::XMLElement::Name</a></div><div class="ttdeci">const char * Name() const</div><div class="ttdoc">Get the name of an element (which is the Value() of the node.) </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1250</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_afd8e01e6018c07347b8e6d80272466aa"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(const XMLHandle &ref)</div><div class="ttdoc">Copy constructor. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1998</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a536447dc7f54c0cd11e031dad94795ae"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae">tinyxml2::XMLHandle::FirstChild</a></div><div class="ttdeci">XMLHandle FirstChild()</div><div class="ttdoc">Get the first child of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2007</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ad080357d76ab7cc59d7651249949329d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">tinyxml2::XMLText::SetCData</a></div><div class="ttdeci">void SetCData(bool isCData)</div><div class="ttdoc">Declare whether this should be CDATA or standard text. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:996</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a002978fc889cc011d143185f2377eca2"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">tinyxml2::XMLNode::SetUserData</a></div><div class="ttdeci">void SetUserData(void *userData)</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:930</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a79db9ef0fe014d27790f2218b87bcbb5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">tinyxml2::XMLNode::NextSibling</a></div><div class="ttdeci">const XMLNode * NextSibling() const</div><div class="ttdoc">Get the next (right) sibling node of this node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:812</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a0be5343b08a957c42c02c5d32c35d338"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338">tinyxml2::XMLAttribute::UnsignedValue</a></div><div class="ttdeci">unsigned UnsignedValue() const</div><div class="ttdoc">Query as an unsigned integer. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1166</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a42cccd0ce8b1ce704f431025e9f19e0c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c">tinyxml2::XMLHandle::LastChildElement</a></div><div class="ttdeci">XMLHandle LastChildElement(const char *name=0)</div><div class="ttdoc">Get the last child element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2019</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a9d09f04435f0f2f7d0816b0198d0517b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b">tinyxml2::XMLHandle::LastChild</a></div><div class="ttdeci">XMLHandle LastChild()</div><div class="ttdoc">Get the last child of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2015</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1988</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_declaration_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_declaration.html">tinyxml2::XMLDeclaration</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1061</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_ad2b70320d3c2a071c2f36928edff3e1c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">tinyxml2::XMLDocument::RootElement</a></div><div class="ttdeci">XMLElement * RootElement()</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1745</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ab1213b4ddebe9b17ec7e7040e9f1caf7"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">tinyxml2::XMLText::ToText</a></div><div class="ttdeci">virtual XMLText * ToText()</div><div class="ttdoc">Safely cast to Text, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:988</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aa2edbc1c0d3e3e8259bd98de7f1cf500"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(XMLNode &node)</div><div class="ttdoc">Create a handle from a node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1995</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a97712009a530d8cb8a63bf705f02b4f1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">tinyxml2::XMLElement::SetName</a></div><div class="ttdeci">void SetName(const char *str, bool staticMem=false)</div><div class="ttdoc">Set the name of the element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1254</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a14419b698f7c4b140df4e80f3f0c93b0"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">tinyxml2::XMLDocument::SetBOM</a></div><div class="ttdeci">void SetBOM(bool useBOM)</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1738</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a9c240a35c18f053509b4b97ddccd9793"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(XMLNode *node)</div><div class="ttdoc">Create a handle from any node (at any depth of the tree.) This can be a null pointer. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1992</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a216157765b7267bf389975b1cbf9a909"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909">tinyxml2::XMLPrinter::ClearBuffer</a></div><div class="ttdeci">void ClearBuffer()</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2254</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_comment_html_a8093e1dc8a34fa446d9dc3fde0e6c0ee"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee">tinyxml2::XMLComment::ToComment</a></div><div class="ttdeci">virtual XMLComment * ToComment()</div><div class="ttdoc">Safely cast to a Comment, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1026</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_ad9ff5c2dbc15df36cf664ce1b0ea0a5d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">tinyxml2::XMLElement::ToElement</a></div><div class="ttdeci">virtual XMLElement * ToElement()</div><div class="ttdoc">Safely cast to an Element, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1258</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a33fc5d159db873a179fa26338adb05bd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">tinyxml2::XMLDocument::HasBOM</a></div><div class="ttdeci">bool HasBOM() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1733</div></div>
+<div class="ttc" id="namespacetinyxml2_html"><div class="ttname"><a href="namespacetinyxml2.html">tinyxml2</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:116</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_acd5eeddf6002ef90806af794b9d9a5a5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">tinyxml2::XMLElement::QueryFloatAttribute</a></div><div class="ttdeci">XMLError QueryFloatAttribute(const char *name, float *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1365</div></div>
<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a48a7f3496f1415832e451bd8d09c9cb9"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9">tinyxml2::XMLAttribute::QueryUnsignedValue</a></div><div class="ttdeci">XMLError QueryUnsignedValue(unsigned int *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a03ea6ec970a021b71bf1219a0f6717df"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">tinyxml2::XMLHandle::ToNode</a></div><div class="ttdeci">XMLNode * ToNode()</div><div class="ttdoc">Safe cast to XMLNode. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2005</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a98ce5207344ad33a265b0422addae1ff"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff">tinyxml2::XMLAttribute::BoolValue</a></div><div class="ttdeci">bool BoolValue() const</div><div class="ttdoc">Query as a boolean. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1163</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ae7dc225e1018cdd685f7563593a1fe08"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">tinyxml2::XMLNode::FirstChild</a></div><div class="ttdeci">const XMLNode * FirstChild() const</div><div class="ttdoc">Get the first child node, or null if none exists. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:751</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_comment_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_comment.html">tinyxml2::XMLComment</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1013</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_declaration_html_a159d8ac45865215e88059ea1e5b52fc5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5">tinyxml2::XMLDeclaration::ToDeclaration</a></div><div class="ttdeci">virtual XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safely cast to a Declaration, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1056</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_adc75bd459fc7ba8223b50f0616767f9a"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLDeclaration &)</div><div class="ttdoc">Visit a declaration. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:492</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a14e4748387c34bf53d24e8119bb1f292"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLUnknown &)</div><div class="ttdoc">Visit an unknown node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:504</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_ae143997e90064ba82326b29a9930ea8f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, unsigned value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1417</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a5f0964e2dbd8e2ee7fce9beab689443c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">tinyxml2::XMLElement::QueryDoubleAttribute</a></div><div class="ttdeci">XMLError QueryDoubleAttribute(const char *name, double *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1348</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1236</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a03ea6ec970a021b71bf1219a0f6717df"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">tinyxml2::XMLHandle::ToNode</a></div><div class="ttdeci">XMLNode * ToNode()</div><div class="ttdoc">Safe cast to XMLNode. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2040</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a98ce5207344ad33a265b0422addae1ff"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff">tinyxml2::XMLAttribute::BoolValue</a></div><div class="ttdeci">bool BoolValue() const</div><div class="ttdoc">Query as a boolean. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1172</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ae7dc225e1018cdd685f7563593a1fe08"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">tinyxml2::XMLNode::FirstChild</a></div><div class="ttdeci">const XMLNode * FirstChild() const</div><div class="ttdoc">Get the first child node, or null if none exists. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:760</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_comment_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_comment.html">tinyxml2::XMLComment</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1022</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_declaration_html_a159d8ac45865215e88059ea1e5b52fc5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5">tinyxml2::XMLDeclaration::ToDeclaration</a></div><div class="ttdeci">virtual XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safely cast to a Declaration, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1065</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_adc75bd459fc7ba8223b50f0616767f9a"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLDeclaration &)</div><div class="ttdoc">Visit a declaration. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:502</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a14e4748387c34bf53d24e8119bb1f292"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLUnknown &)</div><div class="ttdoc">Visit an unknown node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:514</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_ae143997e90064ba82326b29a9930ea8f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, unsigned value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1437</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a5f0964e2dbd8e2ee7fce9beab689443c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">tinyxml2::XMLElement::QueryDoubleAttribute</a></div><div class="ttdeci">XMLError QueryDoubleAttribute(const char *name, double *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1357</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1245</div></div>
<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a4e25344d6e4159026be34dbddf1dcac2"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2">tinyxml2::XMLAttribute::QueryInt64Value</a></div><div class="ttdeci">XMLError QueryInt64Value(int64_t *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aad2eccc7c7c7b18145877c978c3850b5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5">tinyxml2::XMLHandle::NextSibling</a></div><div class="ttdeci">XMLHandle NextSibling()</div><div class="ttdoc">Get the next sibling of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1996</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a02d5ea924586e35f9c13857d1671b765"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">tinyxml2::XMLAttribute::GetLineNum</a></div><div class="ttdeci">int GetLineNum() const</div><div class="ttdoc">Gets the line number the attribute is in, if the document was parsed from a file. ...</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1133</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_adfa2433f0fdafd5c3880936de9affa80"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">tinyxml2::XMLAttribute::IntValue</a></div><div class="ttdeci">int IntValue() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1144</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_unknown_html_af4374856421921cad578c8affae872b6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6">tinyxml2::XMLUnknown::ToUnknown</a></div><div class="ttdeci">virtual XMLUnknown * ToUnknown()</div><div class="ttdoc">Safely cast to an Unknown, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1091</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ac1bb5ea4166c320882d9e0ad16fd385b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">tinyxml2::XMLText::CData</a></div><div class="ttdeci">bool CData() const</div><div class="ttdoc">Returns true if this is a CDATA text element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:991</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a428374e756f4db4cbc287fec64eae02c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c">tinyxml2::XMLHandle::PreviousSibling</a></div><div class="ttdeci">XMLHandle PreviousSibling()</div><div class="ttdoc">Get the previous sibling of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1988</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_const_handle_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_const_handle.html">tinyxml2::XMLConstHandle</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2034</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a75b908322bb4b83be3281b6845252b20"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20">tinyxml2::XMLHandle::operator=</a></div><div class="ttdeci">XMLHandle & operator=(const XMLHandle &ref)</div><div class="ttdoc">Assignment. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1966</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a15fc1f2b922f540917dcf52808737b29"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29">tinyxml2::XMLPrinter::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLDocument &)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2188</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_af97980a17dd4e37448b181f5ddfa92b5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">tinyxml2::XMLVisitor::VisitEnter</a></div><div class="ttdeci">virtual bool VisitEnter(const XMLElement &, const XMLAttribute *)</div><div class="ttdoc">Visit an element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:483</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a34e6318e182e40e3cc4f4ba5d59ed9ed"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">tinyxml2::XMLDocument::Error</a></div><div class="ttdeci">bool Error() const</div><div class="ttdoc">Return true if there was an error parsing the document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1801</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_acb3c22fc5f60eb9db98f533f2761f67d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">tinyxml2::XMLVisitor::VisitEnter</a></div><div class="ttdeci">virtual bool VisitEnter(const XMLDocument &)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:474</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_unknown_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_unknown.html">tinyxml2::XMLUnknown</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1087</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a836e2966ed736fc3c94f70e12a2a3357"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">tinyxml2::XMLNode::ToDocument</a></div><div class="ttdeci">virtual XMLDocument * ToDocument()</div><div class="ttdoc">Safely cast to a Document, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:686</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a9b8583a277e8e26f4cbbb5492786778e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">tinyxml2::XMLNode::LastChild</a></div><div class="ttdeci">const XMLNode * LastChild() const</div><div class="ttdoc">Get the last child node, or null if none exists. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:769</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html">tinyxml2::XMLAttribute</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1122</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aa848b696e6a75e4e545c6da9893b11e1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, bool value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1429</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a108858be7ee3eb53f73b5194c1aa8ff0"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0">tinyxml2::XMLHandle::ToDeclaration</a></div><div class="ttdeci">XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safe cast to XMLDeclaration. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2021</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aad2eccc7c7c7b18145877c978c3850b5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5">tinyxml2::XMLHandle::NextSibling</a></div><div class="ttdeci">XMLHandle NextSibling()</div><div class="ttdoc">Get the next sibling of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2031</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a02d5ea924586e35f9c13857d1671b765"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">tinyxml2::XMLAttribute::GetLineNum</a></div><div class="ttdeci">int GetLineNum() const</div><div class="ttdoc">Gets the line number the attribute is in, if the document was parsed from a file. ...</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1142</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_adfa2433f0fdafd5c3880936de9affa80"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">tinyxml2::XMLAttribute::IntValue</a></div><div class="ttdeci">int IntValue() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1153</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_unknown_html_af4374856421921cad578c8affae872b6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6">tinyxml2::XMLUnknown::ToUnknown</a></div><div class="ttdeci">virtual XMLUnknown * ToUnknown()</div><div class="ttdoc">Safely cast to an Unknown, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1100</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ac1bb5ea4166c320882d9e0ad16fd385b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">tinyxml2::XMLText::CData</a></div><div class="ttdeci">bool CData() const</div><div class="ttdoc">Returns true if this is a CDATA text element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1000</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a428374e756f4db4cbc287fec64eae02c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c">tinyxml2::XMLHandle::PreviousSibling</a></div><div class="ttdeci">XMLHandle PreviousSibling()</div><div class="ttdoc">Get the previous sibling of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2023</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_const_handle_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_const_handle.html">tinyxml2::XMLConstHandle</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2069</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a75b908322bb4b83be3281b6845252b20"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20">tinyxml2::XMLHandle::operator=</a></div><div class="ttdeci">XMLHandle & operator=(const XMLHandle &ref)</div><div class="ttdoc">Assignment. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2001</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a15fc1f2b922f540917dcf52808737b29"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29">tinyxml2::XMLPrinter::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLDocument &)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2223</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_af97980a17dd4e37448b181f5ddfa92b5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">tinyxml2::XMLVisitor::VisitEnter</a></div><div class="ttdeci">virtual bool VisitEnter(const XMLElement &, const XMLAttribute *)</div><div class="ttdoc">Visit an element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:493</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a34e6318e182e40e3cc4f4ba5d59ed9ed"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">tinyxml2::XMLDocument::Error</a></div><div class="ttdeci">bool Error() const</div><div class="ttdoc">Return true if there was an error parsing the document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1817</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_acb3c22fc5f60eb9db98f533f2761f67d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">tinyxml2::XMLVisitor::VisitEnter</a></div><div class="ttdeci">virtual bool VisitEnter(const XMLDocument &)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:484</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_unknown_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_unknown.html">tinyxml2::XMLUnknown</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1096</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a836e2966ed736fc3c94f70e12a2a3357"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">tinyxml2::XMLNode::ToDocument</a></div><div class="ttdeci">virtual XMLDocument * ToDocument()</div><div class="ttdoc">Safely cast to a Document, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:695</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a9b8583a277e8e26f4cbbb5492786778e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">tinyxml2::XMLNode::LastChild</a></div><div class="ttdeci">const XMLNode * LastChild() const</div><div class="ttdoc">Get the last child node, or null if none exists. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:778</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html">tinyxml2::XMLAttribute</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1131</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a5b7df3bed2b8954eabf227fa204522eb"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">tinyxml2::XMLElement::QueryAttribute</a></div><div class="ttdeci">XMLError QueryAttribute(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1402</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aa848b696e6a75e4e545c6da9893b11e1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, bool value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1449</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a108858be7ee3eb53f73b5194c1aa8ff0"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0">tinyxml2::XMLHandle::ToDeclaration</a></div><div class="ttdeci">XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safe cast to XMLDeclaration. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2056</div></div>
<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a406d2c4a13c7af99a65edb59dd9f7581"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">tinyxml2::XMLAttribute::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *value)</div><div class="ttdoc">Set the attribute to a string value. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a11943abf2d0831548c3790dd5d9f119c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, const char *value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1407</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a772f10ddc83f881956d32628faa16eb6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">tinyxml2::XMLVisitor::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLElement &)</div><div class="ttdoc">Visit an element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:487</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html">tinyxml2::XMLPrinter</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2138</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1635</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a7f0687574afa03bc479dc44f29db0afe"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">tinyxml2::XMLNode::GetUserData</a></div><div class="ttdeci">void * GetUserData() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:928</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aaeefdf9171fec91b13a776b42299b0dd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, int64_t value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1423</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a233397ee81e70eb5d4b814c5f8698533"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, double value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1434</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a11943abf2d0831548c3790dd5d9f119c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, const char *value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1427</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a772f10ddc83f881956d32628faa16eb6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">tinyxml2::XMLVisitor::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLElement &)</div><div class="ttdoc">Visit an element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:497</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html">tinyxml2::XMLPrinter</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2173</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1651</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a7f0687574afa03bc479dc44f29db0afe"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">tinyxml2::XMLNode::GetUserData</a></div><div class="ttdeci">void * GetUserData() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:937</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aaeefdf9171fec91b13a776b42299b0dd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, int64_t value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1443</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a1aab1dd0e43ecbcfa306adbcf3a3d853"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a1aab1dd0e43ecbcfa306adbcf3a3d853">tinyxml2::XMLAttribute::Value</a></div><div class="ttdeci">const char * Value() const</div><div class="ttdoc">The value of the attribute. </div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a233397ee81e70eb5d4b814c5f8698533"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, double value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1454</div></div>
<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a2aa6e55e8ea03af0609cf6690bff79b9"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9">tinyxml2::XMLAttribute::QueryDoubleValue</a></div><div class="ttdeci">XMLError QueryDoubleValue(double *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ae0f62bc186c56c2e0483ebd52dbfbe34"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">tinyxml2::XMLNode::Parent</a></div><div class="ttdeci">const XMLNode * Parent() const</div><div class="ttdoc">Get the parent of this node on the DOM. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:737</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_acc8147fb5a85f6c65721654e427752d7"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLComment &)</div><div class="ttdoc">Visit a comment node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:500</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ae0f62bc186c56c2e0483ebd52dbfbe34"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">tinyxml2::XMLNode::Parent</a></div><div class="ttdeci">const XMLNode * Parent() const</div><div class="ttdoc">Get the parent of this node on the DOM. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:746</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_acc8147fb5a85f6c65721654e427752d7"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLComment &)</div><div class="ttdoc">Visit a comment node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:510</div></div>
<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a5f32e038954256f61c21ff20fd13a09c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c">tinyxml2::XMLAttribute::QueryBoolValue</a></div><div class="ttdeci">XMLError QueryBoolValue(bool *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aac667c513d445f8b783e1e15ef9d3551"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">tinyxml2::XMLNode::PreviousSibling</a></div><div class="ttdeci">const XMLNode * PreviousSibling() const</div><div class="ttdoc">Get the previous (left) sibling node of this node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:787</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_ae41d88ee061f3c49a081630ff753b2c5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5">tinyxml2::XMLHandle::NextSiblingElement</a></div><div class="ttdeci">XMLHandle NextSiblingElement(const char *name=0)</div><div class="ttdoc">Get the next sibling element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2000</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:656</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a8a78bc1187c1c45ad89f2690eab567b1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">tinyxml2::XMLElement::QueryIntAttribute</a></div><div class="ttdeci">XMLError QueryIntAttribute(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1313</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a9b5fc636646fda761d342c72e91cb286"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">tinyxml2::XMLNode::GetLineNum</a></div><div class="ttdeci">int GetLineNum() const</div><div class="ttdoc">Gets the line number the node is in, if the document was parsed from a file. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:734</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_af30233565856480ea48b6fa0d6dec65b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLText &)</div><div class="ttdoc">Visit a text node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:496</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html">tinyxml2::XMLText</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:973</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html">tinyxml2::XMLVisitor</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:468</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a57400f816dbe7799ece33615ead9ab76"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">tinyxml2::XMLDocument::ErrorLineNum</a></div><div class="ttdeci">int ErrorLineNum() const</div><div class="ttdoc">Return the line where the error occured, or zero if unknown. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1820</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_af343d1ef0b45c0020e62d784d7e67a68"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">tinyxml2::XMLNode::GetDocument</a></div><div class="ttdeci">XMLDocument * GetDocument()</div><div class="ttdoc">Get the XMLDocument that owns this XMLNode. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:668</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a8675a74aa0ada6eccab0c77ef3e5b9bd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">tinyxml2::XMLNode::ToUnknown</a></div><div class="ttdeci">virtual XMLUnknown * ToUnknown()</div><div class="ttdoc">Safely cast to an Unknown, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:694</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a554b70d882e65b28fc084b23df9b9759"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, float value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1439</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_aee53571b21e7ce5421eb929523a8bbe6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6">tinyxml2::XMLAttribute::Next</a></div><div class="ttdeci">const XMLAttribute * Next() const</div><div class="ttdoc">The next attribute in the list. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1136</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ac3ab489e6e202a3cd1762d3b332e89d4"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">tinyxml2::XMLNode::NoChildren</a></div><div class="ttdeci">bool NoChildren() const</div><div class="ttdoc">Returns true if this node has no children. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:746</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a4aa73513f54ff0087d3e804f0f54e30f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f">tinyxml2::XMLAttribute::DoubleValue</a></div><div class="ttdeci">double DoubleValue() const</div><div class="ttdoc">Query as a double. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1169</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a174fd4c22c010b58138c1b84a0dfbd51"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">tinyxml2::XMLNode::ToDeclaration</a></div><div class="ttdeci">virtual XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safely cast to a Declaration, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:690</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a2de84cfa4ec3fe249bad745069d145f1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">tinyxml2::XMLNode::GetDocument</a></div><div class="ttdeci">const XMLDocument * GetDocument() const</div><div class="ttdoc">Get the XMLDocument that owns this XMLNode. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:663</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a786957e498039554ed334cdc36612a7e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e">tinyxml2::XMLHandle::PreviousSiblingElement</a></div><div class="ttdeci">XMLHandle PreviousSiblingElement(const char *name=0)</div><div class="ttdoc">Get the previous sibling element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1992</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aae6568c64c7f1cc88be8461ba41a79cf"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, int value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1412</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a3e191704c8d499906ec11fe2f60c6686"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686">tinyxml2::XMLElement::FirstAttribute</a></div><div class="ttdeci">const XMLAttribute * FirstAttribute() const</div><div class="ttdoc">Return the first attribute in the list. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1450</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aff47671055aa99840a1c1ebd661e63e3"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">tinyxml2::XMLNode::ToComment</a></div><div class="ttdeci">virtual XMLComment * ToComment()</div><div class="ttdoc">Safely cast to a Comment, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:682</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aac667c513d445f8b783e1e15ef9d3551"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">tinyxml2::XMLNode::PreviousSibling</a></div><div class="ttdeci">const XMLNode * PreviousSibling() const</div><div class="ttdoc">Get the previous (left) sibling node of this node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:796</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_ae41d88ee061f3c49a081630ff753b2c5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5">tinyxml2::XMLHandle::NextSiblingElement</a></div><div class="ttdeci">XMLHandle NextSiblingElement(const char *name=0)</div><div class="ttdoc">Get the next sibling element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2035</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:665</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a8a78bc1187c1c45ad89f2690eab567b1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">tinyxml2::XMLElement::QueryIntAttribute</a></div><div class="ttdeci">XMLError QueryIntAttribute(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1322</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a9b5fc636646fda761d342c72e91cb286"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">tinyxml2::XMLNode::GetLineNum</a></div><div class="ttdeci">int GetLineNum() const</div><div class="ttdoc">Gets the line number the node is in, if the document was parsed from a file. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:743</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_af30233565856480ea48b6fa0d6dec65b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLText &)</div><div class="ttdoc">Visit a text node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:506</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html">tinyxml2::XMLText</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:982</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html">tinyxml2::XMLVisitor</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:478</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a57400f816dbe7799ece33615ead9ab76"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">tinyxml2::XMLDocument::ErrorLineNum</a></div><div class="ttdeci">int ErrorLineNum() const</div><div class="ttdoc">Return the line where the error occurred, or zero if unknown. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1836</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_af343d1ef0b45c0020e62d784d7e67a68"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">tinyxml2::XMLNode::GetDocument</a></div><div class="ttdeci">XMLDocument * GetDocument()</div><div class="ttdoc">Get the XMLDocument that owns this XMLNode. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:677</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a8675a74aa0ada6eccab0c77ef3e5b9bd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">tinyxml2::XMLNode::ToUnknown</a></div><div class="ttdeci">virtual XMLUnknown * ToUnknown()</div><div class="ttdoc">Safely cast to an Unknown, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:703</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a554b70d882e65b28fc084b23df9b9759"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, float value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1459</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_aee53571b21e7ce5421eb929523a8bbe6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6">tinyxml2::XMLAttribute::Next</a></div><div class="ttdeci">const XMLAttribute * Next() const</div><div class="ttdoc">The next attribute in the list. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1145</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ac3ab489e6e202a3cd1762d3b332e89d4"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">tinyxml2::XMLNode::NoChildren</a></div><div class="ttdeci">bool NoChildren() const</div><div class="ttdoc">Returns true if this node has no children. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:755</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a4aa73513f54ff0087d3e804f0f54e30f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f">tinyxml2::XMLAttribute::DoubleValue</a></div><div class="ttdeci">double DoubleValue() const</div><div class="ttdoc">Query as a double. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1178</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a174fd4c22c010b58138c1b84a0dfbd51"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">tinyxml2::XMLNode::ToDeclaration</a></div><div class="ttdeci">virtual XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safely cast to a Declaration, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:699</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a2de84cfa4ec3fe249bad745069d145f1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">tinyxml2::XMLNode::GetDocument</a></div><div class="ttdeci">const XMLDocument * GetDocument() const</div><div class="ttdoc">Get the XMLDocument that owns this XMLNode. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:672</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a786957e498039554ed334cdc36612a7e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e">tinyxml2::XMLHandle::PreviousSiblingElement</a></div><div class="ttdeci">XMLHandle PreviousSiblingElement(const char *name=0)</div><div class="ttdoc">Get the previous sibling element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2027</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aae6568c64c7f1cc88be8461ba41a79cf"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, int value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1432</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a3e191704c8d499906ec11fe2f60c6686"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686">tinyxml2::XMLElement::FirstAttribute</a></div><div class="ttdeci">const XMLAttribute * FirstAttribute() const</div><div class="ttdoc">Return the first attribute in the list. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1470</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aff47671055aa99840a1c1ebd661e63e3"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">tinyxml2::XMLNode::ToComment</a></div><div class="ttdeci">virtual XMLComment * ToComment()</div><div class="ttdoc">Safely cast to a Comment, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:691</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
# control system is used.\r
\r
<<<<<<< HEAD\r
-PROJECT_NUMBER = 7.0.0\r
+PROJECT_NUMBER = 7.0.1\r
=======\r
-PROJECT_NUMBER = 7.0.0\r
+PROJECT_NUMBER = 7.0.1\r
>>>>>>> master\r
\r
# Using the PROJECT_BRIEF tag one can provide an optional one line description\r
*/\r
static const int TIXML2_MAJOR_VERSION = 7;\r
static const int TIXML2_MINOR_VERSION = 0;\r
-static const int TIXML2_PATCH_VERSION = 0;\r
+static const int TIXML2_PATCH_VERSION = 1;\r
\r
#define TINYXML2_MAJOR_VERSION 7\r
#define TINYXML2_MINOR_VERSION 0\r
-#define TINYXML2_PATCH_VERSION 0\r
+#define TINYXML2_PATCH_VERSION 1\r
\r
// A fixed element depth limit is problematic. There needs to be a\r
// limit to avoid a stack overflow. However, that limit varies per\r
pointers into the XML file itself, and will apply normalization\r
and entity translation if actually read. Can also store (and memory\r
manage) a traditional char[]\r
+\r
+ Isn't clear why TINYXML2_LIB is needed; but seems to fix #719\r
*/\r
-class StrPair\r
+class TINYXML2_LIB StrPair\r
{\r
public:\r
enum {\r
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
-libdir=@CMAKE_INSTALL_LIBDIR@
-includedir=@CMAKE_INSTALL_INCLUDEDIR@
+libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
Name: TinyXML2
Description: simple, small, C++ XML parser