blob: bb4896af6f6d56dbebdde6ecdb286b5a752ca351 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Apache Geode Native C++ Reference: Serializer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</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" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Apache Geode Native C++ Reference
&#160;<span id="projectnumber">1.13.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00239_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
<div class="headertitle">
<div class="title">Serializer.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * contributor license agreements. See the NOTICE file distributed with</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * this work for additional information regarding copyright ownership.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * (the &quot;License&quot;); you may not use this file except in compliance with</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef GEODE_SERIALIZER_H_</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define GEODE_SERIALIZER_H_</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;type_traits&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;unordered_set&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00104.html">DataInput.hpp</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;DataOutput.hpp&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;internal/geode_globals.hpp&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span>apache {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span>geode {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>client {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>serializer {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Read and write methods for various types</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; uint8_t value) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; output.<a class="code" href="a00439.html#ab584bfb66bc14fddfffb4282a2eafb9b">write</a>(value);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; uint8_t&amp; value) {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; value = input.<a class="code" href="a00435.html#add454175eca2ec881b129182c299cc39">read</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; int8_t value) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; output.<a class="code" href="a00439.html#ab584bfb66bc14fddfffb4282a2eafb9b">write</a>(value);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input, int8_t&amp; value) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; value = input.<a class="code" href="a00435.html#add454175eca2ec881b129182c299cc39">read</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">const</span> uint8_t* bytes, int32_t len) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; output.<a class="code" href="a00439.html#a92779f7b388b020878a3616cdcc8896d">writeBytes</a>(bytes, len);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input, uint8_t*&amp; bytes,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; int32_t&amp; len) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; input.<a class="code" href="a00435.html#a16511ecd595c84f0aceeff1a23529c0c">readBytes</a>(&amp;bytes, &amp;len);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">const</span> int8_t* bytes, int32_t len) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; output.<a class="code" href="a00439.html#a92779f7b388b020878a3616cdcc8896d">writeBytes</a>(bytes, len);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input, int8_t*&amp; bytes,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; int32_t&amp; len) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; input.<a class="code" href="a00435.html#a16511ecd595c84f0aceeff1a23529c0c">readBytes</a>(&amp;bytes, &amp;len);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; int16_t value) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; output.<a class="code" href="a00439.html#a7f5e95a11c0fe3078fe9d0ba158ee894">writeInt</a>(value);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; int16_t&amp; value) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; value = input.<a class="code" href="a00435.html#a586a3ed064481c2027a4474b5b5599d9">readInt16</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; int32_t value) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; output.<a class="code" href="a00439.html#a7f5e95a11c0fe3078fe9d0ba158ee894">writeInt</a>(value);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; int32_t&amp; value) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; value = input.<a class="code" href="a00435.html#affecd40e102e0eed02d4fd22b892eb73">readInt32</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; int64_t value) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; output.<a class="code" href="a00439.html#a7f5e95a11c0fe3078fe9d0ba158ee894">writeInt</a>(value);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; int64_t&amp; value) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; value = input.<a class="code" href="a00435.html#a517781ff83d5f021b0c2abf5bb4cd5b9">readInt64</a>();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; uint16_t value) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; output.<a class="code" href="a00439.html#a7f5e95a11c0fe3078fe9d0ba158ee894">writeInt</a>(value);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; uint16_t&amp; value) {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; value = input.<a class="code" href="a00435.html#a586a3ed064481c2027a4474b5b5599d9">readInt16</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint32_t value) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; output.<a class="code" href="a00439.html#a7f5e95a11c0fe3078fe9d0ba158ee894">writeInt</a>(value);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; uint32_t&amp; value) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; value = input.<a class="code" href="a00435.html#affecd40e102e0eed02d4fd22b892eb73">readInt32</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; uint64_t value) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; output.<a class="code" href="a00439.html#a7f5e95a11c0fe3078fe9d0ba158ee894">writeInt</a>(value);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; uint64_t&amp; value) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; value = input.<a class="code" href="a00435.html#a517781ff83d5f021b0c2abf5bb4cd5b9">readInt64</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output, <span class="keywordtype">bool</span> value) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; output.<a class="code" href="a00439.html#ad394efcb48c1a358a58e5741d914d58d">writeBoolean</a>(value);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input, <span class="keywordtype">bool</span>&amp; value) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; value = input.<a class="code" href="a00435.html#a5f860fcaeef277767a02a672c6185514">readBoolean</a>();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; std::vector&lt;bool&gt;::reference value) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; value = input.<a class="code" href="a00435.html#a5f860fcaeef277767a02a672c6185514">readBoolean</a>();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">double</span> value) {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; output.<a class="code" href="a00439.html#a2b8d781f1558bf7395367e97bfd98cf0">writeDouble</a>(value);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input, <span class="keywordtype">double</span>&amp; value) {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; value = input.<a class="code" href="a00435.html#a94e42d17eb4c9e5b3ac4561504b02d7c">readDouble</a>();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">float</span> value) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; output.<a class="code" href="a00439.html#a3959bca668435c2f33eb870df34e4132">writeFloat</a>(value);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input, <span class="keywordtype">float</span>&amp; value) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; value = input.<a class="code" href="a00435.html#ae1ac0dfa80098bd1bebdcf7bf8f1ea9f">readFloat</a>();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; char16_t value) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; output.<a class="code" href="a00439.html#a7f5e95a11c0fe3078fe9d0ba158ee894">writeInt</a>(static_cast&lt;int16_t&gt;(value));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; char16_t&amp; value) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; value = input.<a class="code" href="a00435.html#a586a3ed064481c2027a4474b5b5599d9">readInt16</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::string&amp; value) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; value = input.readString();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">const</span> std::string&amp; value) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; output.writeString(value);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">typename</span> std::enable_if&lt;std::is_base_of&lt;Serializable, TObj&gt;::value,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; Serializable&gt;::type* = <span class="keyword">nullptr</span>&gt;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">const</span> std::shared_ptr&lt;TObj&gt;&amp; value) {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; output.<a class="code" href="a00439.html#ab5ccdc412d23aa886c4f2e7fd3596382">writeObject</a>(value);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj,</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">typename</span> std::enable_if&lt;std::is_base_of&lt;Serializable, TObj&gt;::value,</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; Serializable&gt;::type* = <span class="keyword">nullptr</span>&gt;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; std::shared_ptr&lt;TObj&gt;&amp; value) {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; value = std::dynamic_pointer_cast&lt;TObj&gt;(input.<a class="code" href="a00435.html#acf90a7fa8a62cc4c23ac1e36f5646f03">readObject</a>());</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">// For arrays</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj, <span class="keyword">typename</span> TLen&gt;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">const</span> TObj* array, TLen len) {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (array == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; output.<a class="code" href="a00439.html#ab584bfb66bc14fddfffb4282a2eafb9b">write</a>(static_cast&lt;int8_t&gt;(-1));</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; output.<a class="code" href="a00439.html#a74d7360f33e3187d9582cb199099b84f">writeArrayLen</a>(len);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">const</span> TObj* endArray = array + len;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">while</span> (array &lt; endArray) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; writeObject(output, *array++);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;}</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj&gt;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeArrayObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">const</span> std::vector&lt;TObj&gt;&amp; array) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; output.<a class="code" href="a00439.html#a74d7360f33e3187d9582cb199099b84f">writeArrayLen</a>(static_cast&lt;int32_t&gt;(array.size()));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp;&amp; obj : array) {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; writeObject(output, obj);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;}</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj&gt;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword">inline</span> std::vector&lt;TObj&gt; readArrayObject(</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input) {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; std::vector&lt;TObj&gt; array;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordtype">int</span> len = input.<a class="code" href="a00435.html#a3aec0ac7bb1b552f7a264803998c24dd">readArrayLength</a>();</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (len &gt;= 0) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; array.resize(len);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp;&amp; obj : array) {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; readObject(input, obj);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> array;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj, <span class="keyword">typename</span> TLen&gt;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input, TObj*&amp; array,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; TLen&amp; len) {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; len = input.<a class="code" href="a00435.html#a3aec0ac7bb1b552f7a264803998c24dd">readArrayLength</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> (len &gt; 0) {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; _GEODE_NEW(array, TObj[len]);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; TObj* startArray = array;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; TObj* endArray = array + len;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">while</span> (startArray &lt; endArray) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; readObject(input, *startArray++);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; array = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">typename</span> std::enable_if&lt;!std::is_base_of&lt;Serializable, TObj&gt;::value,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; Serializable&gt;::type* = <span class="keyword">nullptr</span>&gt;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> objectArraySize(<span class="keyword">const</span> std::vector&lt;TObj&gt;&amp; array) {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(TObj) * array.size();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">typename</span> std::enable_if&lt;std::is_base_of&lt;Serializable, TObj&gt;::value,</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; Serializable&gt;::type* = <span class="keyword">nullptr</span>&gt;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> objectArraySize(<span class="keyword">const</span> std::vector&lt;TObj&gt;&amp; array) {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">size_t</span> size = 0;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> obj : array) {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; size += obj.objectArraySize();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; size += <span class="keyword">sizeof</span>(TObj) * array.size();</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> size;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;}</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj, <span class="keyword">typename</span> TLen,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">typename</span> std::enable_if&lt;!std::is_base_of&lt;Serializable, TObj&gt;::value,</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; Serializable&gt;::type* = <span class="keyword">nullptr</span>&gt;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> objectSize(<span class="keyword">const</span> TObj*, TLen len) {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(TObj) * len;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj, <span class="keyword">typename</span> TLen,</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">typename</span> std::enable_if&lt;std::is_base_of&lt;Serializable, TObj&gt;::value,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; Serializable&gt;::type* = <span class="keyword">nullptr</span>&gt;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> objectSize(<span class="keyword">const</span> TObj* array, TLen len) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordtype">size_t</span> size = 0;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">const</span> TObj* endArray = array + len;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">while</span> (array &lt; endArray) {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span> (*array != <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; size += (*array)-&gt;objectSize();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; array++;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; size += <span class="keyword">sizeof</span>(TObj) * len;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> size;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;}</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment">// For containers vector/hashmap/hashset</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj, <span class="keyword">typename</span> Allocator&gt;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(<a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">const</span> std::vector&lt;TObj, Allocator&gt;&amp; value) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; output.<a class="code" href="a00439.html#a74d7360f33e3187d9582cb199099b84f">writeArrayLen</a>(static_cast&lt;int32_t&gt;(value.size()));</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; v : value) {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; writeObject(output, v);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> objectSize(<span class="keyword">const</span> std::vector&lt;std::shared_ptr&lt;Cacheable&gt;&gt;&amp; value) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">size_t</span> objectSize = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; iter : value) {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">if</span> (iter) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; objectSize += iter-&gt;objectSize();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; objectSize += <span class="keyword">sizeof</span>(std::shared_ptr&lt;Cacheable&gt;) * value.size();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> objectSize;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj, <span class="keyword">typename</span> _tail&gt;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(<a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; std::vector&lt;TObj, _tail&gt;&amp; value) {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; int32_t len = input.<a class="code" href="a00435.html#a3aec0ac7bb1b552f7a264803998c24dd">readArrayLength</a>();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span> (len &gt;= 0) {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; TObj obj;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">for</span> (int32_t index = 0; index &lt; len; index++) {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; readObject(input, obj);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; value.push_back(obj);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TKey, <span class="keyword">typename</span> TValue, <span class="keyword">typename</span> Hash, <span class="keyword">typename</span> KeyEqual,</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">typename</span> Allocator&gt;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">const</span> std::unordered_map&lt;TKey, TValue, Hash, KeyEqual, Allocator&gt;&amp; value) {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; output.<a class="code" href="a00439.html#a74d7360f33e3187d9582cb199099b84f">writeArrayLen</a>(static_cast&lt;int32_t&gt;(value.size()));</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; iter : value) {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; writeObject(output, iter.first);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; writeObject(output, iter.second);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;}</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> objectSize(<span class="keyword">const</span> HashMapOfCacheable&amp; value) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">auto</span> objectSize = (<span class="keyword">sizeof</span>(std::shared_ptr&lt;CacheableKey&gt;) +</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">sizeof</span>(std::shared_ptr&lt;Cacheable&gt;)) *</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; value.size();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; iter : value) {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; objectSize += iter.first-&gt;objectSize();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span> (iter.second) {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; objectSize += iter.second-&gt;objectSize();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> objectSize;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;}</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TKey, <span class="keyword">typename</span> TValue, <span class="keyword">typename</span> Hash, <span class="keyword">typename</span> KeyEqual,</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">typename</span> Allocator&gt;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; std::unordered_map&lt;TKey, TValue, Hash, KeyEqual, Allocator&gt;&amp; value) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; int32_t len = input.<a class="code" href="a00435.html#a3aec0ac7bb1b552f7a264803998c24dd">readArrayLength</a>();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; value.reserve(len);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; std::shared_ptr&lt;Serializable&gt; key;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; std::shared_ptr&lt;Serializable&gt; val;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">for</span> (int32_t index = 0; index &lt; len; index++) {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; readObject(input, key);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; readObject(input, val);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; value.emplace(</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; std::dynamic_pointer_cast&lt;typename TKey::element_type&gt;(key),</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; std::dynamic_pointer_cast&lt;typename TValue::element_type&gt;(val));</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;}</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TKey, <span class="keyword">typename</span> Hash, <span class="keyword">typename</span> KeyEqual, <span class="keyword">typename</span> Allocator&gt;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> writeObject(</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="a00439.html">apache::geode::client::DataOutput</a>&amp; output,</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> std::unordered_set&lt;TKey, Hash, KeyEqual, Allocator&gt;&amp; value) {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; output.<a class="code" href="a00439.html#a74d7360f33e3187d9582cb199099b84f">writeArrayLen</a>(static_cast&lt;int32_t&gt;(value.size()));</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; iter : value) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; writeObject(output, iter);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;}</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> objectSize(<span class="keyword">const</span> HashSetOfCacheableKey&amp; value) {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">auto</span> objectSize = <span class="keyword">sizeof</span>(std::shared_ptr&lt;CacheableKey&gt;) * value.size();</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; iter : value) {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span> (iter) {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; objectSize += iter-&gt;objectSize();</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> objectSize;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;}</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TKey, <span class="keyword">typename</span> Hash, <span class="keyword">typename</span> KeyEqual, <span class="keyword">typename</span> Allocator&gt;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> readObject(</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="a00435.html">apache::geode::client::DataInput</a>&amp; input,</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; std::unordered_set&lt;TKey, Hash, KeyEqual, Allocator&gt;&amp; value) {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; int32_t len = input.<a class="code" href="a00435.html#a3aec0ac7bb1b552f7a264803998c24dd">readArrayLength</a>();</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span> (len &gt; 0) {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; std::shared_ptr&lt;Serializable&gt; key;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">for</span> (int32_t index = 0; index &lt; len; index++) {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; readObject(input, key);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; value.insert(std::dynamic_pointer_cast&lt;typename TKey::element_type&gt;(key));</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;}</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="comment">// Default value for builtin types</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObj&gt;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="keyword">inline</span> TObj zeroObject() {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;}</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> zeroObject&lt;bool&gt;() {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;}</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> zeroObject&lt;double&gt;() {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> 0.0;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;}</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> zeroObject&lt;float&gt;() {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> 0.0F;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;}</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;} <span class="comment">// namespace serializer</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;} <span class="comment">// namespace client</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;} <span class="comment">// namespace geode</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;} <span class="comment">// namespace apache</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor">#endif // GEODE_SERIALIZER_H_</span></div><div class="ttc" id="a00435_html_a5f860fcaeef277767a02a672c6185514"><div class="ttname"><a href="a00435.html#a5f860fcaeef277767a02a672c6185514">apache::geode::client::DataInput::readBoolean</a></div><div class="ttdeci">bool readBoolean()</div><div class="ttdoc">Read a boolean value from the DataInput.</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:76</div></div>
<div class="ttc" id="a00435_html_a517781ff83d5f021b0c2abf5bb4cd5b9"><div class="ttname"><a href="a00435.html#a517781ff83d5f021b0c2abf5bb4cd5b9">apache::geode::client::DataInput::readInt64</a></div><div class="ttdeci">int64_t readInt64()</div><div class="ttdoc">Read a 64-bit signed integer from the DataInput.</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:194</div></div>
<div class="ttc" id="a00439_html_ab5ccdc412d23aa886c4f2e7fd3596382"><div class="ttname"><a href="a00439.html#ab5ccdc412d23aa886c4f2e7fd3596382">apache::geode::client::DataOutput::writeObject</a></div><div class="ttdeci">void writeObject(const std::shared_ptr&lt; PTR &gt; &amp;objptr, bool isDelta=false)</div><div class="ttdoc">Write a Serializable object to the DataOutput.</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:337</div></div>
<div class="ttc" id="a00435_html_a3aec0ac7bb1b552f7a264803998c24dd"><div class="ttname"><a href="a00435.html#a3aec0ac7bb1b552f7a264803998c24dd">apache::geode::client::DataInput::readArrayLength</a></div><div class="ttdeci">int32_t readArrayLength()</div><div class="ttdoc">Read a 32-bit signed integer array length value from the DataInput in a manner compatible with java s...</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:216</div></div>
<div class="ttc" id="a00439_html"><div class="ttname"><a href="a00439.html">apache::geode::client::DataOutput</a></div><div class="ttdoc">Provide operations for writing primitive data values, byte arrays, strings, Serializable objects to a...</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:48</div></div>
<div class="ttc" id="a00439_html_a92779f7b388b020878a3616cdcc8896d"><div class="ttname"><a href="a00439.html#a92779f7b388b020878a3616cdcc8896d">apache::geode::client::DataOutput::writeBytes</a></div><div class="ttdeci">void writeBytes(const uint8_t *bytes, int32_t len)</div><div class="ttdoc">Write an array of unsigned bytes to the DataOutput.</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:80</div></div>
<div class="ttc" id="a00435_html"><div class="ttname"><a href="a00435.html">apache::geode::client::DataInput</a></div><div class="ttdoc">Provide operations for reading primitive data values, byte arrays, strings, Serializable objects from...</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:59</div></div>
<div class="ttc" id="a00435_html_add454175eca2ec881b129182c299cc39"><div class="ttname"><a href="a00435.html#add454175eca2ec881b129182c299cc39">apache::geode::client::DataInput::read</a></div><div class="ttdeci">int8_t read()</div><div class="ttdoc">Read a signed byte from the DataInput.</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:66</div></div>
<div class="ttc" id="a00439_html_ad394efcb48c1a358a58e5741d914d58d"><div class="ttname"><a href="a00439.html#ad394efcb48c1a358a58e5741d914d58d">apache::geode::client::DataOutput::writeBoolean</a></div><div class="ttdeci">void writeBoolean(bool value)</div><div class="ttdoc">Write a boolean value to the DataOutput.</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:72</div></div>
<div class="ttc" id="a00439_html_a2b8d781f1558bf7395367e97bfd98cf0"><div class="ttname"><a href="a00439.html#a2b8d781f1558bf7395367e97bfd98cf0">apache::geode::client::DataOutput::writeDouble</a></div><div class="ttdeci">void writeDouble(double value)</div><div class="ttdoc">Write a double precision real number to the DataOutput.</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:254</div></div>
<div class="ttc" id="a00435_html_ae1ac0dfa80098bd1bebdcf7bf8f1ea9f"><div class="ttname"><a href="a00435.html#ae1ac0dfa80098bd1bebdcf7bf8f1ea9f">apache::geode::client::DataInput::readFloat</a></div><div class="ttdeci">float readFloat()</div><div class="ttdoc">Read a float from the DataInput.</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:262</div></div>
<div class="ttc" id="a00439_html_a3959bca668435c2f33eb870df34e4132"><div class="ttname"><a href="a00439.html#a3959bca668435c2f33eb870df34e4132">apache::geode::client::DataOutput::writeFloat</a></div><div class="ttdeci">void writeFloat(float value)</div><div class="ttdoc">Write a float value to the DataOutput.</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:240</div></div>
<div class="ttc" id="a00439_html_a7f5e95a11c0fe3078fe9d0ba158ee894"><div class="ttname"><a href="a00439.html#a7f5e95a11c0fe3078fe9d0ba158ee894">apache::geode::client::DataOutput::writeInt</a></div><div class="ttdeci">void writeInt(uint16_t value)</div><div class="ttdoc">Write a 16-bit unsigned integer value to the DataOutput.</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:140</div></div>
<div class="ttc" id="a00435_html_a94e42d17eb4c9e5b3ac4561504b02d7c"><div class="ttname"><a href="a00435.html#a94e42d17eb4c9e5b3ac4561504b02d7c">apache::geode::client::DataInput::readDouble</a></div><div class="ttdeci">double readDouble()</div><div class="ttdoc">Read a double precision number from the DataInput.</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:278</div></div>
<div class="ttc" id="a00435_html_acf90a7fa8a62cc4c23ac1e36f5646f03"><div class="ttname"><a href="a00435.html#acf90a7fa8a62cc4c23ac1e36f5646f03">apache::geode::client::DataInput::readObject</a></div><div class="ttdeci">std::shared_ptr&lt; Serializable &gt; readObject()</div><div class="ttdoc">Read a Serializable object from the DataInput.</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:341</div></div>
<div class="ttc" id="a00435_html_a586a3ed064481c2027a4474b5b5599d9"><div class="ttname"><a href="a00435.html#a586a3ed064481c2027a4474b5b5599d9">apache::geode::client::DataInput::readInt16</a></div><div class="ttdeci">int16_t readInt16()</div><div class="ttdoc">Read a 16-bit signed integer from the DataInput.</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:168</div></div>
<div class="ttc" id="a00439_html_ab584bfb66bc14fddfffb4282a2eafb9b"><div class="ttname"><a href="a00439.html#ab584bfb66bc14fddfffb4282a2eafb9b">apache::geode::client::DataOutput::write</a></div><div class="ttdeci">void write(uint8_t value)</div><div class="ttdoc">Write an unsigned byte to the DataOutput.</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:55</div></div>
<div class="ttc" id="a00435_html_affecd40e102e0eed02d4fd22b892eb73"><div class="ttname"><a href="a00435.html#affecd40e102e0eed02d4fd22b892eb73">apache::geode::client::DataInput::readInt32</a></div><div class="ttdeci">int32_t readInt32()</div><div class="ttdoc">Read a 32-bit signed integer from the DataInput.g.</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:179</div></div>
<div class="ttc" id="a00439_html_a74d7360f33e3187d9582cb199099b84f"><div class="ttname"><a href="a00439.html#a74d7360f33e3187d9582cb199099b84f">apache::geode::client::DataOutput::writeArrayLen</a></div><div class="ttdeci">void writeArrayLen(int32_t len)</div><div class="ttdoc">Write a 32-bit signed integer array length value to the DataOutput in a manner compatible with java s...</div><div class="ttdef"><b>Definition:</b> DataOutput.hpp:221</div></div>
<div class="ttc" id="a00104_html"><div class="ttname"><a href="a00104.html">DataInput.hpp</a></div></div>
<div class="ttc" id="a00435_html_a16511ecd595c84f0aceeff1a23529c0c"><div class="ttname"><a href="a00435.html#a16511ecd595c84f0aceeff1a23529c0c">apache::geode::client::DataInput::readBytes</a></div><div class="ttdeci">void readBytes(uint8_t **bytes, int32_t *len)</div><div class="ttdoc">Read an array of unsigned bytes from the DataInput expecting to find the length of array in the strea...</div><div class="ttdef"><b>Definition:</b> DataInput.hpp:127</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<HR><address style="align: right;"><small>Apache Geode C++ Cache API Documentation</small></address>