<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.12"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>exml: Ewol XML parser: framework/atria-soft/exml/exml/internal/Node.hpp Source File</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
        <script type="text/javascript" src="doxy-boot.js"></script>
    </head>
    <body>
        <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">exml: Ewol XML parser 0.7.0</a>
                </div>
                <div id="navbar" class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li><a href="index.html">Main&nbsp;Page</a></li>
                        <li><a href="pages.html">Related&nbsp;Pages</a></li>
                        <li><a href="namespaces.html">Namespaces</a></li>
                        <li><a href="annotated.html">Classes</a></li>
                        <li><a href="files.html">Files</a></li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
                                Link-libs<span class="caret"></span>
                            </a>
                            <ul class="dropdown-menu">
                                <li><a href="http://HeeroYui.github.io/lutin">lutin</a></li>
                                <li><a href="http://atria-soft.github.io/ewol">ewol</a></li>
                                <li><a href="http://atria-soft.github.io/echrono">echrono</a></li>
                                <li><a href="http://atria-soft.github.io/etk">etk</a></li>
                                <li><a href="http://atria-soft.github.io/ejson">ejson</a></li>
                                <li><a href="http://atria-soft.github.io/exml">exml</a></li>
                                <li><a href="http://atria-soft.github.io/esvg">esvg</a></li>
                                <li><a href="http://atria-soft.github.io/egami">egami</a></li>
                                <li><a href="http://atria-soft.github.io/gale">gale</a></li>
                                <li><a href="http://atria-soft.github.io/ege">ege</a></li>
                                <li><a href="http://atria-soft.github.io/elog">elog</a></li>
                                <li><a href="http://atria-soft.github.io/ememory">ememory</a></li>
                                <li><a href="http://atria-soft.github.io/enet">enet</a></li>
                                <li><a href="http://atria-soft.github.io/eproperty">eproperty</a></li>
                                <li><a href="http://atria-soft.github.io/esignal">esignal</a></li>
                                <li><a href="http://atria-soft.github.io/etranslate">etranslate</a></li>
                                <li><a href="http://atria-soft.github.io/zeus">zeus</a></li>
                                <li><a href="http://musicdsp.github.io/audio-ess">audio-ess</a></li>
                                <li><a href="http://musicdsp.github.io/audio">audio</a></li>
                                <li><a href="http://musicdsp.github.io/audio-drain">audio-drain</a></li>
                                <li><a href="http://musicdsp.github.io/audio-orchestra">audio-orchestra</a></li>
                                <li><a href="http://musicdsp.github.io/audio-river">audio-river</a></li>
                            </ul>
                        </li>
                    </ul>
                    <div id="search-box" class="input-group">
                        <div class="input-group-btn">
                            <button aria-expanded="false" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                                <span class="glyphicon glyphicon-search"></span>
                                <span class="caret"></span>
                            </button>
                            <ul class="dropdown-menu">
                                <li><a href="#">All</a></li>
                                <li><a href="#">Classes</a></li>
                                <li><a href="#">Namespaces</a></li>
                                <li><a href="#">Files</a></li>
                                <li><a href="#">Functions</a></li>
                                <li><a href="#">Variables</a></li>
                                <li><a href="#">Typedefs</a></li>
                                <li><a href="#">Enumerations</a></li>
                                <li><a href="#">Enumerator</a></li>
                                <li><a href="#">Friends</a></li>
                                <li><a href="#">Macros</a></li>
                                <li><a href="#">Pages</a></li>
                            </ul>
                        </div>
                        <button id="search-close" type="button" class="close" aria-label="Close">
                            <span aria-hidden="true"></span>
                        </button>
                        <input id="search-field" class="form-control" accesskey="S" onkeydown="searchBox.OnSearchFieldChange(event);" placeholder="Search ..." type="text">
                    </div>
                </div><!--/.nav-collapse -->
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;margin-top: 60px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_644e041c3a6521da7b27eba0e4eb2b95.html">framework</a></li><li class="navelem"><a class="el" href="dir_a094892b17be858f66bf3446bbb755c7.html">atria-soft</a></li><li class="navelem"><a class="el" href="dir_ae358d914b1fb7d675ed883237a889f5.html">exml</a></li><li class="navelem"><a class="el" href="dir_e0e5ae444ddef5927e74f7409f56d38c.html">exml</a></li><li class="navelem"><a class="el" href="dir_aa537408b4b3694bd6c43d048d5a57b8.html">internal</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">Node.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="internal_2_node_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/memory__8hpp.html">ememory/memory.hpp</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;<a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/etk.tag:http://atria-soft.github.io/etk/" href="http://atria-soft.github.io/etk/types__8hpp.html">etk/types.hpp</a>&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;<a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/etk.tag:http://atria-soft.github.io/etk/" href="http://atria-soft.github.io/etk/__vector2__d__8hpp.html">etk/math/Vector2D.hpp</a>&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_file_pos_8hpp.html">exml/FilePos.hpp</a>&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="node_type_8hpp.html">exml/nodeType.hpp</a>&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceexml.html">exml</a> {</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keyword">namespace </span>internal {</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="comment">//#define ENABLE_DISPLAY_PARSED_ELEMENT</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="comment">//#define ENABLE_CRITICAL_WHEN_ERROR</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">        #if 1</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">            #define EXML_PARSE_ELEMENT EXML_VERBOSE</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">        #else</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">            #define EXML_PARSE_ELEMENT EXML_DEBUG</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">        #endif</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">        #if 1</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">            #define EXML_PARSE_ATTRIBUTE EXML_VERBOSE</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">        #else</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">            #define EXML_PARSE_ATTRIBUTE EXML_DEBUG</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">        #endif</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keyword">class </span>Document;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keyword">class </span>Attribute;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">class </span>Comment;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keyword">class </span>Declaration;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keyword">class </span>Element;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keyword">class </span>Text;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classexml_1_1internal_1_1_node.html">   43</a></span>&#160;        <span class="keyword">class </span><a class="code" href="classexml_1_1internal_1_1_node.html">Node</a> : <span class="keyword">public</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_enable_shared_from_this.html">ememory::EnableSharedFromThis</a>&lt;Node&gt;{</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;            <span class="keyword">protected</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classexml_1_1internal_1_1_node.html#a09354ad634c68aa620d08a88f4e20f98">   48</a></span>&#160;                <a class="code" href="classexml_1_1internal_1_1_node.html#a09354ad634c68aa620d08a88f4e20f98">Node</a>() :</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                  <a class="code" href="classexml_1_1internal_1_1_node.html#aff4c22828c5e24f6890fdb7e646a3046">m_pos</a>(0,0) {</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                    </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                };</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                <a class="code" href="classexml_1_1internal_1_1_node.html#a09354ad634c68aa620d08a88f4e20f98">Node</a>(<span class="keyword">const</span> std::string&amp; _value);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;            <span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                <span class="keyword">virtual</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a6a305f22e495245e88f092ddeedfbbd3">~Node</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;            <span class="keyword">public</span>:</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#ac767feed551e8543279652865fcb7371">iParse</a>(<span class="keyword">const</span> std::string&amp; _data, int32_t&amp; _pos, <span class="keywordtype">bool</span> _caseSensitive, <a class="code" href="classexml_1_1_file_pos.html">exml::FilePos</a>&amp; _filePos, <a class="code" href="classexml_1_1internal_1_1_document.html">exml::internal::Document</a>&amp; _doc) = 0;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a2a8e61ba97925d0af11cd968d9cee97d">iGenerate</a>(std::string&amp; _data, int32_t _indent) <span class="keyword">const</span>;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keyword">protected</span>:</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classexml_1_1internal_1_1_node.html#aff4c22828c5e24f6890fdb7e646a3046">   81</a></span>&#160;                <a class="code" href="classexml_1_1_file_pos.html">exml::FilePos</a> <a class="code" href="classexml_1_1internal_1_1_node.html#aff4c22828c5e24f6890fdb7e646a3046">m_pos</a>; </div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            <span class="keyword">public</span>:</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                <span class="keyword">const</span> <a class="code" href="classexml_1_1_file_pos.html">exml::FilePos</a>&amp; <a class="code" href="classexml_1_1internal_1_1_node.html#add2df6a9be11b5d1697c7b3caf05e37c">getPos</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            <span class="keyword">protected</span>:</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classexml_1_1internal_1_1_node.html#a4665d683223dd60ed293471627b8659b">   89</a></span>&#160;                std::string <a class="code" href="classexml_1_1internal_1_1_node.html#a4665d683223dd60ed293471627b8659b">m_value</a>; </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            <span class="keyword">public</span>:</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a8fd06290a36e1798d3dd969512fb2ee8">setValue</a>(std::string _value);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                <span class="keyword">virtual</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classexml_1_1internal_1_1_node.html#a1ae0e54963e780ba5f478194ae1e3a2b">getValue</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <span class="keyword">public</span>:</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                <span class="keyword">virtual</span> <span class="keyword">enum</span> <a class="code" href="namespaceexml.html#a49be10c1d94fea7f1fe579e5ec041e55">nodeType</a> <a class="code" href="classexml_1_1internal_1_1_node.html#ac30ff036da7e29dc862bae2d1ae7c441">getType</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            <span class="keyword">protected</span>:</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                <span class="keywordtype">void</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a753a9c172b9a498fb8abceeac81d6a8e">addIndent</a>(std::string&amp; _data, int32_t _indent) <span class="keyword">const</span>;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                <span class="keywordtype">void</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a8f35cba4f6c01fa544315139032fb39a">drawElementParsed</a>(char32_t _val, <span class="keyword">const</span> <a class="code" href="classexml_1_1_file_pos.html">exml::FilePos</a>&amp; _filePos) <span class="keyword">const</span>;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#abe0e26e310c7451cfcb225cff88cacb1">checkAvaillable</a>(char32_t _val, <span class="keywordtype">bool</span> _firstChar) <span class="keyword">const</span>;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                int32_t <a class="code" href="classexml_1_1internal_1_1_node.html#abe664dd6d896dddc12edc7026aa24c24">countWhiteChar</a>(<span class="keyword">const</span> std::string&amp; _data, int32_t _pos, <a class="code" href="classexml_1_1_file_pos.html">exml::FilePos</a>&amp; _filePos) <span class="keyword">const</span>;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            <span class="keyword">public</span>:</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                <span class="keyword">virtual</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Document&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#a64e44dc0bd6febbcde144b4a2481389a">toDocument</a>();</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Document&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#a64e44dc0bd6febbcde144b4a2481389a">toDocument</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                <span class="keyword">virtual</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Attribute&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#a445a08afd2353d9486e2c3beafbc83cc">toAttribute</a>();</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Attribute&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#a445a08afd2353d9486e2c3beafbc83cc">toAttribute</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                <span class="keyword">virtual</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Comment&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#af2b2c9ff93a1f0a0a58088636c8b6549">toComment</a>();</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Comment&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#af2b2c9ff93a1f0a0a58088636c8b6549">toComment</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                <span class="keyword">virtual</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Declaration&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#a6170cc3fdab1527305792b22e59a13c9">toDeclaration</a>();</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Declaration&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#a6170cc3fdab1527305792b22e59a13c9">toDeclaration</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                <span class="keyword">virtual</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Element&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#afad6cd619259363f3f60fb36753c504a">toElement</a>();</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Element&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#afad6cd619259363f3f60fb36753c504a">toElement</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                <span class="keyword">virtual</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Text&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#a5489504a07661cdf86ca754cf6ccfa46">toText</a>();</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="codeRef" doxygen="/home/heero/dev/perso/out/doc/release/ememory.tag:http://atria-soft.github.io/ememory/" href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr&lt;exml::internal::Text&gt;</a> <a class="code" href="classexml_1_1internal_1_1_node.html#a5489504a07661cdf86ca754cf6ccfa46">toText</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                </div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a785e97b8b4ed169486cfaaad9f6e4cdb">isDocument</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a79a6a4f90a4e848f58be568acdeaf4f9">isAttribute</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#af83b4078765454c8dc88cada81a592c7">isComment</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#aaaa9bdd0a14d1fd69bb37b18932ceecd">isDeclaration</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;                <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a5ca69f3db29e6f92c139583fd629804d">isElement</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                <span class="keywordtype">bool</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a05ab1958d2487777e45150ce9fae91e2">isText</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                </div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classexml_1_1internal_1_1_node.html#a70cd10854610d69cec5d35cf43443fc6">clear</a>();</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        };</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    }</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;}</div><div class="ttc" id="classexml_1_1internal_1_1_node_html_a05ab1958d2487777e45150ce9fae91e2"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a05ab1958d2487777e45150ce9fae91e2">exml::internal::Node::isText</a></div><div class="ttdeci">bool isText() const</div><div class="ttdoc">check if the node is a exml::internal::Text </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_aaaa9bdd0a14d1fd69bb37b18932ceecd"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#aaaa9bdd0a14d1fd69bb37b18932ceecd">exml::internal::Node::isDeclaration</a></div><div class="ttdeci">bool isDeclaration() const</div><div class="ttdoc">check if the node is a exml::internal::Declaration </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_af83b4078765454c8dc88cada81a592c7"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#af83b4078765454c8dc88cada81a592c7">exml::internal::Node::isComment</a></div><div class="ttdeci">bool isComment() const</div><div class="ttdoc">check if the node is a exml::internal::Comment </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a6170cc3fdab1527305792b22e59a13c9"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a6170cc3fdab1527305792b22e59a13c9">exml::internal::Node::toDeclaration</a></div><div class="ttdeci">virtual ememory::SharedPtr&lt; exml::internal::Declaration &gt; toDeclaration()</div><div class="ttdoc">Cast the element in a Declaration if it is possible. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_add2df6a9be11b5d1697c7b3caf05e37c"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#add2df6a9be11b5d1697c7b3caf05e37c">exml::internal::Node::getPos</a></div><div class="ttdeci">const exml::FilePos &amp; getPos() const</div><div class="ttdoc">get the current position where the element is in the file </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a70cd10854610d69cec5d35cf43443fc6"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a70cd10854610d69cec5d35cf43443fc6">exml::internal::Node::clear</a></div><div class="ttdeci">virtual void clear()</div><div class="ttdoc">clear the Node </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_abe0e26e310c7451cfcb225cff88cacb1"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#abe0e26e310c7451cfcb225cff88cacb1">exml::internal::Node::checkAvaillable</a></div><div class="ttdeci">bool checkAvaillable(char32_t _val, bool _firstChar) const</div><div class="ttdoc">check if an element or attribute is availlable (not : !&quot;#$%&amp;&amp;#39;()*+,/;&lt;=&gt;?@[]^`{|}~ \n\t\r and for firs...</div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_af2b2c9ff93a1f0a0a58088636c8b6549"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#af2b2c9ff93a1f0a0a58088636c8b6549">exml::internal::Node::toComment</a></div><div class="ttdeci">virtual ememory::SharedPtr&lt; exml::internal::Comment &gt; toComment()</div><div class="ttdoc">Cast the element in a Comment if it is possible. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a753a9c172b9a498fb8abceeac81d6a8e"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a753a9c172b9a498fb8abceeac81d6a8e">exml::internal::Node::addIndent</a></div><div class="ttdeci">void addIndent(std::string &amp;_data, int32_t _indent) const</div><div class="ttdoc">add indentation of the string input. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_ac30ff036da7e29dc862bae2d1ae7c441"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#ac30ff036da7e29dc862bae2d1ae7c441">exml::internal::Node::getType</a></div><div class="ttdeci">virtual enum nodeType getType() const</div><div class="ttdoc">get the node type. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a09354ad634c68aa620d08a88f4e20f98"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a09354ad634c68aa620d08a88f4e20f98">exml::internal::Node::Node</a></div><div class="ttdeci">Node()</div><div class="ttdoc">basic element of a xml structure </div><div class="ttdef"><b>Definition:</b> Node.hpp:48</div></div>
<div class="ttc" id="__vector2__d__8hpp_html"><div class="ttname"><a href="http://atria-soft.github.io/etk/__vector2__d__8hpp.html">Vector2D.hpp</a></div></div>
<div class="ttc" id="node_type_8hpp_html"><div class="ttname"><a href="node_type_8hpp.html">nodeType.hpp</a></div></div>
<div class="ttc" id="types__8hpp_html"><div class="ttname"><a href="http://atria-soft.github.io/etk/types__8hpp.html">types.hpp</a></div></div>
<div class="ttc" id="namespaceexml_html"><div class="ttname"><a href="namespaceexml.html">exml</a></div><div class="ttdoc">exml namespace containing all function for XML interpretor </div><div class="ttdef"><b>Definition:</b> Attribute.hpp:11</div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_afad6cd619259363f3f60fb36753c504a"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#afad6cd619259363f3f60fb36753c504a">exml::internal::Node::toElement</a></div><div class="ttdeci">virtual ememory::SharedPtr&lt; exml::internal::Element &gt; toElement()</div><div class="ttdoc">Cast the element in a Element if it is possible. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a445a08afd2353d9486e2c3beafbc83cc"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a445a08afd2353d9486e2c3beafbc83cc">exml::internal::Node::toAttribute</a></div><div class="ttdeci">virtual ememory::SharedPtr&lt; exml::internal::Attribute &gt; toAttribute()</div><div class="ttdoc">Cast the element in a Attribute if it is possible. </div></div>
<div class="ttc" id="classememory_1_1_enable_shared_from_this_html"><div class="ttname"><a href="http://atria-soft.github.io/ememory/classememory_1_1_enable_shared_from_this.html">ememory::EnableSharedFromThis</a></div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_aff4c22828c5e24f6890fdb7e646a3046"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#aff4c22828c5e24f6890fdb7e646a3046">exml::internal::Node::m_pos</a></div><div class="ttdeci">exml::FilePos m_pos</div><div class="ttdoc">position in the readed file == &gt; not correct when the file is generated </div><div class="ttdef"><b>Definition:</b> Node.hpp:81</div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a1ae0e54963e780ba5f478194ae1e3a2b"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a1ae0e54963e780ba5f478194ae1e3a2b">exml::internal::Node::getValue</a></div><div class="ttdeci">virtual const std::string &amp; getValue() const</div><div class="ttdoc">get the current element Value. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a5489504a07661cdf86ca754cf6ccfa46"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a5489504a07661cdf86ca754cf6ccfa46">exml::internal::Node::toText</a></div><div class="ttdeci">virtual ememory::SharedPtr&lt; exml::internal::Text &gt; toText()</div><div class="ttdoc">Cast the element in a Text if it is possible. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a5ca69f3db29e6f92c139583fd629804d"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a5ca69f3db29e6f92c139583fd629804d">exml::internal::Node::isElement</a></div><div class="ttdeci">bool isElement() const</div><div class="ttdoc">check if the node is a exml::internal::Element </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a2a8e61ba97925d0af11cd968d9cee97d"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a2a8e61ba97925d0af11cd968d9cee97d">exml::internal::Node::iGenerate</a></div><div class="ttdeci">virtual bool iGenerate(std::string &amp;_data, int32_t _indent) const</div><div class="ttdoc">generate a string with the tree of the xml </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_document_html"><div class="ttname"><a href="classexml_1_1internal_1_1_document.html">exml::internal::Document</a></div><div class="ttdoc">Basic document element of a document. </div><div class="ttdef"><b>Definition:</b> Document.hpp:16</div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a785e97b8b4ed169486cfaaad9f6e4cdb"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a785e97b8b4ed169486cfaaad9f6e4cdb">exml::internal::Node::isDocument</a></div><div class="ttdeci">bool isDocument() const</div><div class="ttdoc">check if the node is a exml::internal::Document </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a79a6a4f90a4e848f58be568acdeaf4f9"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a79a6a4f90a4e848f58be568acdeaf4f9">exml::internal::Node::isAttribute</a></div><div class="ttdeci">bool isAttribute() const</div><div class="ttdoc">check if the node is a exml::internal::Attribute </div></div>
<div class="ttc" id="classexml_1_1_file_pos_html"><div class="ttname"><a href="classexml_1_1_file_pos.html">exml::FilePos</a></div><div class="ttdoc">Position in the file of the original data. </div><div class="ttdef"><b>Definition:</b> FilePos.hpp:14</div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a6a305f22e495245e88f092ddeedfbbd3"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a6a305f22e495245e88f092ddeedfbbd3">exml::internal::Node::~Node</a></div><div class="ttdeci">virtual ~Node()=default</div><div class="ttdoc">Virtualize destructor. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html">exml::internal::Node</a></div><div class="ttdoc">Basic main object of all xml elements. </div><div class="ttdef"><b>Definition:</b> Node.hpp:43</div></div>
<div class="ttc" id="_file_pos_8hpp_html"><div class="ttname"><a href="_file_pos_8hpp.html">FilePos.hpp</a></div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a64e44dc0bd6febbcde144b4a2481389a"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a64e44dc0bd6febbcde144b4a2481389a">exml::internal::Node::toDocument</a></div><div class="ttdeci">virtual ememory::SharedPtr&lt; exml::internal::Document &gt; toDocument()</div><div class="ttdoc">Cast the element in a Document if it is possible. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_abe664dd6d896dddc12edc7026aa24c24"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#abe664dd6d896dddc12edc7026aa24c24">exml::internal::Node::countWhiteChar</a></div><div class="ttdeci">int32_t countWhiteChar(const std::string &amp;_data, int32_t _pos, exml::FilePos &amp;_filePos) const</div><div class="ttdoc">count the number of white char in the string from the specify position (stop at the first element tha...</div></div>
<div class="ttc" id="classememory_1_1_shared_ptr_html"><div class="ttname"><a href="http://atria-soft.github.io/ememory/classememory_1_1_shared_ptr.html">ememory::SharedPtr</a></div></div>
<div class="ttc" id="namespaceexml_html_a49be10c1d94fea7f1fe579e5ec041e55"><div class="ttname"><a href="namespaceexml.html#a49be10c1d94fea7f1fe579e5ec041e55">exml::nodeType</a></div><div class="ttdeci">nodeType</div><div class="ttdoc">Type of the XML elements. </div><div class="ttdef"><b>Definition:</b> nodeType.hpp:17</div></div>
<div class="ttc" id="memory__8hpp_html"><div class="ttname"><a href="http://atria-soft.github.io/ememory/memory__8hpp.html">memory.hpp</a></div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a4665d683223dd60ed293471627b8659b"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a4665d683223dd60ed293471627b8659b">exml::internal::Node::m_value</a></div><div class="ttdeci">std::string m_value</div><div class="ttdoc">value of the node (for element this is the name, for text it is the inside text ...) </div><div class="ttdef"><b>Definition:</b> Node.hpp:89</div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_ac767feed551e8543279652865fcb7371"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#ac767feed551e8543279652865fcb7371">exml::internal::Node::iParse</a></div><div class="ttdeci">virtual bool iParse(const std::string &amp;_data, int32_t &amp;_pos, bool _caseSensitive, exml::FilePos &amp;_filePos, exml::internal::Document &amp;_doc)=0</div><div class="ttdoc">parse the Current node [pure VIRUAL] </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a8f35cba4f6c01fa544315139032fb39a"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a8f35cba4f6c01fa544315139032fb39a">exml::internal::Node::drawElementParsed</a></div><div class="ttdeci">void drawElementParsed(char32_t _val, const exml::FilePos &amp;_filePos) const</div><div class="ttdoc">Display the cuurent element that is curently parse. </div></div>
<div class="ttc" id="classexml_1_1internal_1_1_node_html_a8fd06290a36e1798d3dd969512fb2ee8"><div class="ttname"><a href="classexml_1_1internal_1_1_node.html#a8fd06290a36e1798d3dd969512fb2ee8">exml::internal::Node::setValue</a></div><div class="ttdeci">virtual void setValue(std::string _value)</div><div class="ttdoc">set the value of the node. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated on Mon Oct 24 2016 15:35:49 for exml: Ewol XML parser by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>