<html> <head> <title> JsonCpp - JSON data format manipulation library </title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="#ffffff"> <table width="100%"> <tr> <td width="40%" align="left" valign="center"> <a href="https://github.com/open-source-parsers/jsoncpp"> JsonCpp project page </a> </td> <td width="40%" align="right" valign="center"> <a href="http://open-source-parsers.github.io/jsoncpp-docs/doxygen/">JsonCpp home page</a> </td> </tr> </table> <hr> <!-- Generated by Doxygen 1.8.8 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_558a3a6fe8f26971847c96e209994c71.html">lib_json</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">json_valueiterator.inl</div> </div> </div><!--header--> <div class="contents"> <a href="json__valueiterator_8inl.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Copyright 2007-2010 Baptiste Lepilleur</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// Distributed under MIT license, or public domain if desired and</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// recognized in your jurisdiction.</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// included by json_value.cpp</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="namespace_json.html">Json</a> {</div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// //////////////////////////////////////////////////////////////////</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">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// class ValueIteratorBase</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// //////////////////////////////////////////////////////////////////</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> </div> <div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#af45b028d9ff9cbd2554a87878b42dd75"> 18</a></span> <a class="code" href="class_json_1_1_value_iterator_base.html#af45b028d9ff9cbd2554a87878b42dd75">ValueIteratorBase::ValueIteratorBase</a>()</div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  : current_(), isNull_(true) {</div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> }</div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div> <div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#a640e990e5f03a96fd650122a2906f59d"> 22</a></span> <a class="code" href="class_json_1_1_value_iterator_base.html#af45b028d9ff9cbd2554a87878b42dd75">ValueIteratorBase::ValueIteratorBase</a>(</div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keyword">const</span> Value::ObjectValues::iterator& current)</div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  : current_(current), isNull_(false) {}</div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div> <div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#a40a20c65abc423a26e3aae68d9a0525c"> 26</a></span> <a class="code" href="class_json_1_1_value.html">Value</a>& <a class="code" href="class_json_1_1_value_iterator_base.html#a40a20c65abc423a26e3aae68d9a0525c">ValueIteratorBase::deref</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordflow">return</span> current_->second;</div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> }</div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div> <div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#afe58f9534e1fd2033419fd9fe244551e"> 30</a></span> <span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value_iterator_base.html#afe58f9534e1fd2033419fd9fe244551e">ValueIteratorBase::increment</a>() {</div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  ++current_;</div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#affc8cf5ff54a9f432cc693362c153fa6"> 34</a></span> <span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value_iterator_base.html#affc8cf5ff54a9f432cc693362c153fa6">ValueIteratorBase::decrement</a>() {</div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  --current_;</div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> }</div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <a class="code" href="class_json_1_1_value_iterator_base.html#a4e44bf8cbd17ec8d6e2c185904a15ebd">ValueIteratorBase::difference_type</a></div> <div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#ad6c553b249e89e3dc9933e100ccbe064"> 39</a></span> <a class="code" href="class_json_1_1_value_iterator_base.html#ad6c553b249e89e3dc9933e100ccbe064">ValueIteratorBase::computeDistance</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value_iterator_base.html">SelfType</a>& other)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#ifdef JSON_USE_CPPTL_SMALLMAP</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">return</span> other.current_ - current_;</div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#else</span></div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// Iterator for null value are initialized using the default</span></div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// constructor, which initialize current_ to the default</span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// std::map::iterator. As begin() and end() are two instance</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// of the default std::map::iterator, they can not be compared.</span></div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">// To allow this, we handle this comparison specifically.</span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span> (isNull_ && other.isNull_) {</div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">return</span> 0;</div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div> <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Usage of std::distance is not portable (does not compile with Sun Studio 12</span></div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// RogueWave STL,</span></div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// which is the one used by default).</span></div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// Using a portable hand-made version for non random iterator instead:</span></div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="comment">// return difference_type( std::distance( current_, other.current_ ) );</span></div> <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="class_json_1_1_value_iterator_base.html#a4e44bf8cbd17ec8d6e2c185904a15ebd">difference_type</a> myDistance = 0;</div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span> (Value::ObjectValues::iterator it = current_; it != other.current_;</div> <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  ++it) {</div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  ++myDistance;</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="keywordflow">return</span> myDistance;</div> <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#a21820d6ee564e541bd118b21e4741962"> 66</a></span> <span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value_iterator_base.html#a21820d6ee564e541bd118b21e4741962">ValueIteratorBase::isEqual</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value_iterator_base.html">SelfType</a>& other)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (isNull_) {</div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> other.isNull_;</div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> current_ == other.current_;</div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div> <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div> <div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#a496e6aba44808433ec5858c178be5719"> 73</a></span> <span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value_iterator_base.html#a496e6aba44808433ec5858c178be5719">ValueIteratorBase::copy</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value_iterator_base.html">SelfType</a>& other) {</div> <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  current_ = other.current_;</div> <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  isNull_ = other.isNull_;</div> <div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div> <div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div> <div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#aa2ff5e79fc96acd4c3cd288e92614fc7"> 78</a></span> <a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_value_iterator_base.html#aa2ff5e79fc96acd4c3cd288e92614fc7">ValueIteratorBase::key</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">const</span> Value::CZString czstring = (*current_).first;</div> <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (czstring.data()) {</div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (czstring.isStaticString())</div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html">Value</a>(<a class="code" href="class_json_1_1_static_string.html">StaticString</a>(czstring.data()));</div> <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html">Value</a>(czstring.data(), czstring.data() + czstring.length());</div> <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div> <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html">Value</a>(czstring.index());</div> <div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }</div> <div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div> <div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#aa90591f5f7f8d2f06cc4605816b53738"> 88</a></span> <a class="code" href="namespace_json.html#a800fb90eb6ee8d5d62b600c06f87f7d4">UInt</a> <a class="code" href="class_json_1_1_value_iterator_base.html#aa90591f5f7f8d2f06cc4605816b53738">ValueIteratorBase::index</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">const</span> Value::CZString czstring = (*current_).first;</div> <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (!czstring.data())</div> <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> czstring.index();</div> <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">Value::UInt</a>(-1);</div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div> <div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#a46a67081a5ef8d83f25ec15035403ce0"> 95</a></span> std::string <a class="code" href="class_json_1_1_value_iterator_base.html#a46a67081a5ef8d83f25ec15035403ce0">ValueIteratorBase::name</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">char</span> <span class="keyword">const</span>* keey;</div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordtype">char</span> <span class="keyword">const</span>* end;</div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  keey = <a class="code" href="class_json_1_1_value_iterator_base.html#ac3aa3870761342e47c6486d81f643c6c">memberName</a>(&end);</div> <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (!keey) <span class="keywordflow">return</span> std::string();</div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> std::string(keey, end);</div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div> <div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div> <div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#ac3aa3870761342e47c6486d81f643c6c"> 103</a></span> <span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code" href="class_json_1_1_value_iterator_base.html#ac3aa3870761342e47c6486d81f643c6c">ValueIteratorBase::memberName</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* cname = (*current_).first.data();</div> <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> cname ? cname : <span class="stringliteral">""</span>;</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> </div> <div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator_base.html#a543d4e73e3d2d121bc287b24231386c3"> 108</a></span> <span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code" href="class_json_1_1_value_iterator_base.html#ac3aa3870761342e47c6486d81f643c6c">ValueIteratorBase::memberName</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>** end)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* cname = (*current_).first.data();</div> <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span> (!cname) {</div> <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  *end = NULL;</div> <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> NULL;</div> <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div> <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  *end = cname + (*current_).first.length();</div> <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> cname;</div> <div class="line"><a name="l00116"></a><span class="lineno"> 116</span> }</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="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// class ValueConstIterator</span></div> <div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div> <div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_json_1_1_value_const_iterator.html#a1b10a46f1606421b0663492a5f9a2aad"> 126</a></span> <a class="code" href="class_json_1_1_value_const_iterator.html#a1b10a46f1606421b0663492a5f9a2aad">ValueConstIterator::ValueConstIterator</a>() {}</div> <div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div> <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <a class="code" href="class_json_1_1_value_const_iterator.html#a1b10a46f1606421b0663492a5f9a2aad">ValueConstIterator::ValueConstIterator</a>(</div> <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> Value::ObjectValues::iterator& current)</div> <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  : <a class="code" href="class_json_1_1_value_iterator_base.html">ValueIteratorBase</a>(current) {}</div> <div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div> <div class="line"><a name="l00132"></a><span class="lineno"> 132</span> ValueConstIterator& <a class="code" href="class_json_1_1_value_const_iterator.html#ad1b1c11f8d7fb22d4d3c231915f2b15b">ValueConstIterator::</a></div> <div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_json_1_1_value_const_iterator.html#ad1b1c11f8d7fb22d4d3c231915f2b15b"> 133</a></span> <a class="code" href="class_json_1_1_value_const_iterator.html#ad1b1c11f8d7fb22d4d3c231915f2b15b">operator=</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value_iterator_base.html">ValueIteratorBase</a>& other) {</div> <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="class_json_1_1_value_iterator_base.html#a496e6aba44808433ec5858c178be5719">copy</a>(other);</div> <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// class ValueIterator</span></div> <div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// //////////////////////////////////////////////////////////////////</span></div> <div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div> <div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator.html#a09425cf4dc12244072a942f290a5c0ec"> 146</a></span> <a class="code" href="class_json_1_1_value_iterator.html#a09425cf4dc12244072a942f290a5c0ec">ValueIterator::ValueIterator</a>() {}</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> <a class="code" href="class_json_1_1_value_iterator.html#a09425cf4dc12244072a942f290a5c0ec">ValueIterator::ValueIterator</a>(<span class="keyword">const</span> Value::ObjectValues::iterator& current)</div> <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  : <a class="code" href="class_json_1_1_value_iterator_base.html">ValueIteratorBase</a>(current) {}</div> <div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div> <div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator.html#aa85aa208670891670392259efa0143bb"> 151</a></span> <a class="code" href="class_json_1_1_value_iterator.html#a09425cf4dc12244072a942f290a5c0ec">ValueIterator::ValueIterator</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value_const_iterator.html">ValueConstIterator</a>& other)</div> <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  : <a class="code" href="class_json_1_1_value_iterator_base.html">ValueIteratorBase</a>(other) {}</div> <div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div> <div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator.html#a7d5e58a9a4a553968acdf3064b39d21c"> 154</a></span> <a class="code" href="class_json_1_1_value_iterator.html#a09425cf4dc12244072a942f290a5c0ec">ValueIterator::ValueIterator</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value_iterator.html">ValueIterator</a>& other)</div> <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  : <a class="code" href="class_json_1_1_value_iterator_base.html">ValueIteratorBase</a>(other) {}</div> <div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div> <div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="class_json_1_1_value_iterator.html#a8e23312b1db874f7e403fd7e76611bdc"> 157</a></span> <a class="code" href="class_json_1_1_value_iterator.html">ValueIterator</a>& <a class="code" href="class_json_1_1_value_iterator.html#a8e23312b1db874f7e403fd7e76611bdc">ValueIterator::operator=</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value_iterator_base.html">SelfType</a>& other) {</div> <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="class_json_1_1_value_iterator_base.html#a496e6aba44808433ec5858c178be5719">copy</a>(other);</div> <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> *<span class="keyword">this</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> </div> <div class="line"><a name="l00162"></a><span class="lineno"> 162</span> } <span class="comment">// namespace Json</span></div> <div class="ttc" id="class_json_1_1_value_iterator_html_a09425cf4dc12244072a942f290a5c0ec"><div class="ttname"><a href="class_json_1_1_value_iterator.html#a09425cf4dc12244072a942f290a5c0ec">Json::ValueIterator::ValueIterator</a></div><div class="ttdeci">ValueIterator()</div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00146">json_valueiterator.inl:146</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html">Json::ValueIteratorBase</a></div><div class="ttdoc">base class for Value iterators. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00664">value.h:664</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_a4e44bf8cbd17ec8d6e2c185904a15ebd"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#a4e44bf8cbd17ec8d6e2c185904a15ebd">Json::ValueIteratorBase::difference_type</a></div><div class="ttdeci">int difference_type</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00668">value.h:668</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_ac3aa3870761342e47c6486d81f643c6c"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#ac3aa3870761342e47c6486d81f643c6c">Json::ValueIteratorBase::memberName</a></div><div class="ttdeci">char const * memberName() const </div><div class="ttdoc">Return the member name of the referenced Value. </div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00103">json_valueiterator.inl:103</a></div></div> <div class="ttc" id="class_json_1_1_value_const_iterator_html_a1b10a46f1606421b0663492a5f9a2aad"><div class="ttname"><a href="class_json_1_1_value_const_iterator.html#a1b10a46f1606421b0663492a5f9a2aad">Json::ValueConstIterator::ValueConstIterator</a></div><div class="ttdeci">ValueConstIterator()</div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00126">json_valueiterator.inl:126</a></div></div> <div class="ttc" id="class_json_1_1_static_string_html"><div class="ttname"><a href="class_json_1_1_static_string.html">Json::StaticString</a></div><div class="ttdoc">Lightweight wrapper to tag static string. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00116">value.h:116</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_a21820d6ee564e541bd118b21e4741962"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#a21820d6ee564e541bd118b21e4741962">Json::ValueIteratorBase::isEqual</a></div><div class="ttdeci">bool isEqual(const SelfType &other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00066">json_valueiterator.inl:66</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_ad6c553b249e89e3dc9933e100ccbe064"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#ad6c553b249e89e3dc9933e100ccbe064">Json::ValueIteratorBase::computeDistance</a></div><div class="ttdeci">difference_type computeDistance(const SelfType &other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00039">json_valueiterator.inl:39</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_a496e6aba44808433ec5858c178be5719"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#a496e6aba44808433ec5858c178be5719">Json::ValueIteratorBase::copy</a></div><div class="ttdeci">void copy(const SelfType &other)</div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00073">json_valueiterator.inl:73</a></div></div> <div class="ttc" id="class_json_1_1_value_const_iterator_html"><div class="ttname"><a href="class_json_1_1_value_const_iterator.html">Json::ValueConstIterator</a></div><div class="ttdoc">const iterator for object and array value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00729">value.h:729</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_html_a8e23312b1db874f7e403fd7e76611bdc"><div class="ttname"><a href="class_json_1_1_value_iterator.html#a8e23312b1db874f7e403fd7e76611bdc">Json::ValueIterator::operator=</a></div><div class="ttdeci">SelfType & operator=(const SelfType &other)</div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00157">json_valueiterator.inl:157</a></div></div> <div class="ttc" id="namespace_json_html"><div class="ttname"><a href="namespace_json.html">Json</a></div><div class="ttdoc">JSON (JavaScript Object Notation). </div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00087">config.h:87</a></div></div> <div class="ttc" id="class_json_1_1_value_html_a0933d59b45793ae4aade1757c322a98d"><div class="ttname"><a href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">Json::Value::UInt</a></div><div class="ttdeci">Json::UInt UInt</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00168">value.h:168</a></div></div> <div class="ttc" id="class_json_1_1_value_const_iterator_html_ad1b1c11f8d7fb22d4d3c231915f2b15b"><div class="ttname"><a href="class_json_1_1_value_const_iterator.html#ad1b1c11f8d7fb22d4d3c231915f2b15b">Json::ValueConstIterator::operator=</a></div><div class="ttdeci">SelfType & operator=(const ValueIteratorBase &other)</div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00133">json_valueiterator.inl:133</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_a46a67081a5ef8d83f25ec15035403ce0"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#a46a67081a5ef8d83f25ec15035403ce0">Json::ValueIteratorBase::name</a></div><div class="ttdeci">std::string name() const </div><div class="ttdoc">Return the member name of the referenced Value, or "" if it is not an objectValue. </div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00095">json_valueiterator.inl:95</a></div></div> <div class="ttc" id="class_json_1_1_value_html"><div class="ttname"><a href="class_json_1_1_value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00162">value.h:162</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_aa90591f5f7f8d2f06cc4605816b53738"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#aa90591f5f7f8d2f06cc4605816b53738">Json::ValueIteratorBase::index</a></div><div class="ttdeci">UInt index() const </div><div class="ttdoc">Return the index of the referenced Value, or -1 if it is not an arrayValue. </div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00088">json_valueiterator.inl:88</a></div></div> <div class="ttc" id="namespace_json_html_a800fb90eb6ee8d5d62b600c06f87f7d4"><div class="ttname"><a href="namespace_json.html#a800fb90eb6ee8d5d62b600c06f87f7d4">Json::UInt</a></div><div class="ttdeci">unsigned int UInt</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00089">config.h:89</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_aa2ff5e79fc96acd4c3cd288e92614fc7"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#aa2ff5e79fc96acd4c3cd288e92614fc7">Json::ValueIteratorBase::key</a></div><div class="ttdeci">Value key() const </div><div class="ttdoc">Return either the index or the member name of the referenced value as a Value. </div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00078">json_valueiterator.inl:78</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_afe58f9534e1fd2033419fd9fe244551e"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#afe58f9534e1fd2033419fd9fe244551e">Json::ValueIteratorBase::increment</a></div><div class="ttdeci">void increment()</div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00030">json_valueiterator.inl:30</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_html"><div class="ttname"><a href="class_json_1_1_value_iterator.html">Json::ValueIterator</a></div><div class="ttdoc">Iterator for object and array value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00778">value.h:778</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_af45b028d9ff9cbd2554a87878b42dd75"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#af45b028d9ff9cbd2554a87878b42dd75">Json::ValueIteratorBase::ValueIteratorBase</a></div><div class="ttdeci">ValueIteratorBase()</div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00018">json_valueiterator.inl:18</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_a40a20c65abc423a26e3aae68d9a0525c"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#a40a20c65abc423a26e3aae68d9a0525c">Json::ValueIteratorBase::deref</a></div><div class="ttdeci">Value & deref() const </div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00026">json_valueiterator.inl:26</a></div></div> <div class="ttc" id="class_json_1_1_value_iterator_base_html_affc8cf5ff54a9f432cc693362c153fa6"><div class="ttname"><a href="class_json_1_1_value_iterator_base.html#affc8cf5ff54a9f432cc693362c153fa6">Json::ValueIteratorBase::decrement</a></div><div class="ttdeci">void decrement()</div><div class="ttdef"><b>Definition:</b> <a href="json__valueiterator_8inl_source.html#l00034">json_valueiterator.inl:34</a></div></div> </div><!-- fragment --></div><!-- contents --> <hr> </body> </html>