arrow-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From w...@apache.org
Subject [23/51] [partial] arrow-site git commit: Add Ray serialization blog post, update API docs
Date Mon, 16 Oct 2017 14:13:46 GMT
http://git-wip-us.apache.org/repos/asf/arrow-site/blob/785c5862/docs/cpp/md_tutorials_row_wise_conversion.html
----------------------------------------------------------------------
diff --git a/docs/cpp/md_tutorials_row_wise_conversion.html b/docs/cpp/md_tutorials_row_wise_conversion.html
index 14c0829..5fa4ac3 100644
--- a/docs/cpp/md_tutorials_row_wise_conversion.html
+++ b/docs/cpp/md_tutorials_row_wise_conversion.html
@@ -68,7 +68,7 @@ $(function() {
 <p>The data in this example is stored in the following struct:</p>
 <div class="fragment"><div class="line">struct data_row {</div><div class="line">    int64_t id;</div><div class="line">    double cost;</div><div class="line">    std::vector&lt;double&gt; cost_components;</div><div class="line">};</div><div class="line"></div><div class="line">std::vector&lt;data_row&gt; rows;</div></div><!-- fragment --><p>The final representation should be an <code><a class="el" href="classarrow_1_1_table.html" title="Logical table as sequence of chunked arrays. ">arrow::Table</a></code> which in turn is made up of an <code><a class="el" href="classarrow_1_1_schema.html" title="Sequence of arrow::Field objects describing the columns of a record batch or table data structure...">arrow::Schema</a></code> and a list of <code><a class="el" href="classarrow_1_1_column.html" title="An immutable column data structure consisting of a field (type metadata) and a logical chunked data a...">arrow::Column</a></code>. An <code><a class="el" href="classarrow_1_1_column.html" 
 title="An immutable column data structure consisting of a field (type metadata) and a logical chunked data a...">arrow::Column</a></code> is again a named collection of one or more <code><a class="el" href="classarrow_1_1_array.html" title="Array base type Immutable data array with some logical type and some length. ">arrow::Array</a></code> instances. As the first step, we will iterate over the data and build up the arrays incrementally. For this task, we provide <code><a class="el" href="classarrow_1_1_array_builder.html" title="Base class for all data array builders. ">arrow::ArrayBuilder</a></code> classes that help in the construction of the final <code><a class="el" href="classarrow_1_1_array.html" title="Array base type Immutable data array with some logical type and some length. ">arrow::Array</a></code> instances.</p>
 <p>For each type, Arrow has a specially typed builder class. For the primitive values <code>id</code> and <code>cost</code> we can use the respective <code><a class="el" href="namespacearrow.html#a08fa80026c56e0f1ff24b43c4dc33e61">arrow::Int64Builder</a></code> and <code><a class="el" href="namespacearrow.html#ab98cad76b29efffe92c6c88af8947873">arrow::DoubleBuilder</a></code>. For the <code>cost_components</code> vector, we need to have two builders, a top-level <code><a class="el" href="classarrow_1_1_list_builder.html" title="Builder class for variable-length list array value types. ">arrow::ListBuilder</a></code> that builds the array of offsets and a nested <code><a class="el" href="namespacearrow.html#ab98cad76b29efffe92c6c88af8947873">arrow::DoubleBuilder</a></code> that constructs the underlying values array that is referenced by the offsets in the former array.</p>
-<div class="fragment"><div class="line">// The builders are more efficient using</div><div class="line">// arrow::jemalloc::MemoryPool::default_pool() as this can increase the size of</div><div class="line">// the underlying memory regions in-place. At the moment, arrow::jemalloc is only</div><div class="line">// supported on Unix systems, not Windows.</div><div class="line"></div><div class="line">arrow::Int64Builder id_builder(arrow::default_memory_pool());</div><div class="line">arrow::DoubleBuilder cost_builder(arrow::default_memory_pool());</div><div class="line">std::shared_ptr&lt;DoubleBuilder&gt; components_values_builder =</div><div class="line">    std::make_shared&lt;DoubleBuilder&gt;(arrow::default_memory_pool());</div><div class="line">arrow::ListBuilder components_builder(arrow::default_memory_pool(),</div><div class="line">    components_values_builder);</div></div><!-- fragment --><p>Now we can loop over our existing data and insert it into the builders. The <code>Ap
 pend</code> calls here may fail (e.g. we cannot allocate enough additional memory). Thus we need to check their return values. For more information on these values, check the documentation about <code><a class="el" href="classarrow_1_1_status.html">arrow::Status</a></code>.</p>
+<div class="fragment"><div class="line">// The builders are more efficient using</div><div class="line">// arrow::jemalloc::MemoryPool::default_pool() as this can increase the size of</div><div class="line">// the underlying memory regions in-place. At the moment, arrow::jemalloc is only</div><div class="line">// supported on Unix systems, not Windows.</div><div class="line"></div><div class="line">using arrow::DoubleBuilder;</div><div class="line">using arrow::Int64Builder;</div><div class="line">using arrow::ListBuilder;</div><div class="line"></div><div class="line">arrow::MemoryPool* pool = arrow::default_memory_pool();</div><div class="line">Int64Builder id_builder(pool);</div><div class="line">DoubleBuilder cost_builder(pool);</div><div class="line">std::unique_ptr&lt;DoubleBuilder&gt; components_values_builder(new DoubleBuilder(pool));</div><div class="line">ListBuilder components_builder(pool, std::move(components_values_builder));</div></div><!-- fragment --><p>Now we can l
 oop over our existing data and insert it into the builders. The <code>Append</code> calls here may fail (e.g. we cannot allocate enough additional memory). Thus we need to check their return values. For more information on these values, check the documentation about <code><a class="el" href="classarrow_1_1_status.html">arrow::Status</a></code>.</p>
 <div class="fragment"><div class="line">for (const data_row&amp; row : rows) {</div><div class="line">    ARROW_RETURN_NOT_OK(id_builder.Append(row.id));</div><div class="line">    ARROW_RETURN_NOT_OK(cost_builder.Append(row.cost));</div><div class="line"></div><div class="line">    // Indicate the start of a new list row. This will memorise the current</div><div class="line">    // offset in the values builder.</div><div class="line">    ARROW_RETURN_NOT_OK(components_builder.Append());</div><div class="line">    // Store the actual values. The final nullptr argument tells the underyling</div><div class="line">    // builder that all added values are valid, i.e. non-null.</div><div class="line">    ARROW_RETURN_NOT_OK(components_values_builder-&gt;Append(</div><div class="line">        row.cost_components.data(), row.cost_components.size(),</div><div class="line">        nullptr);</div><div class="line">}</div></div><!-- fragment --><p>At the end, we finalise the arrays, declare th
 e (type) schema and combine them into a single <code><a class="el" href="classarrow_1_1_table.html" title="Logical table as sequence of chunked arrays. ">arrow::Table</a></code>:</p>
 <div class="fragment"><div class="line">std::shared_ptr&lt;arrow::Array&gt; id_array;</div><div class="line">ARROW_RETURN_NOT_OK(id_builder.Finish(&amp;id_array));</div><div class="line">std::shared_ptr&lt;arrow::Array&gt; cost_array;</div><div class="line">ARROW_RETURN_NOT_OK(cost_builder.Finish(&amp;cost_array));</div><div class="line">std::shared_ptr&lt;arrow::Array&gt; cost_components_array;</div><div class="line">ARROW_RETURN_NOT_OK(components_builder.Finish(&amp;cost_components_array));</div><div class="line"></div><div class="line">std::vector&lt;std::shared_ptr&lt;arrow::Field&gt;&gt; schema_vector = {</div><div class="line">    arrow::field(&quot;id&quot;, arrow::int64()),</div><div class="line">    arrow::field(&quot;cost&quot;, arrow::float64()),</div><div class="line">    arrow::field(&quot;cost_components&quot;, arrow::list(arrow::float64()))</div><div class="line">};</div><div class="line">auto schema = std::make_shared&lt;arrow::Schema&gt;(schema_vector);</div><div cl
 ass="line"></div><div class="line">std::shared_ptr&lt;arrow::Table&gt; table;</div><div class="line">ARROW_RETURN_NOT_OK(MakeTable(schema,</div><div class="line">    {id_array, cost_array, cost_components_array}, &amp;table));</div></div><!-- fragment --><p>The final <code>table</code> variable is the one we then can pass on to other functions that can consume Apache Arrow memory structures. This object has ownership of all referenced data, thus we don't have to care about undefined references once we leave the scope of the function building the table and its underlying arrays.</p>
 <h1>Converting an Arrow Table back into row-wise representation </h1>

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/785c5862/docs/cpp/memory__pool_8h.html
----------------------------------------------------------------------
diff --git a/docs/cpp/memory__pool_8h.html b/docs/cpp/memory__pool_8h.html
index cf3af81..c4a8726 100644
--- a/docs/cpp/memory__pool_8h.html
+++ b/docs/cpp/memory__pool_8h.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Apache Arrow (C++): /home/wesm/code/arrow/cpp/src/arrow/memory_pool.h File Reference</title>
+<title>Apache Arrow (C++): /apache-arrow/arrow/cpp/src/arrow/memory_pool.h File Reference</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>

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/785c5862/docs/cpp/memory__pool_8h_source.html
----------------------------------------------------------------------
diff --git a/docs/cpp/memory__pool_8h_source.html b/docs/cpp/memory__pool_8h_source.html
index 2c28b85..8520e33 100644
--- a/docs/cpp/memory__pool_8h_source.html
+++ b/docs/cpp/memory__pool_8h_source.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Apache Arrow (C++): /home/wesm/code/arrow/cpp/src/arrow/memory_pool.h Source File</title>
+<title>Apache Arrow (C++): /apache-arrow/arrow/cpp/src/arrow/memory_pool.h 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>

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/785c5862/docs/cpp/message_8h.html
----------------------------------------------------------------------
diff --git a/docs/cpp/message_8h.html b/docs/cpp/message_8h.html
index b680ef3..c1f3b9a 100644
--- a/docs/cpp/message_8h.html
+++ b/docs/cpp/message_8h.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Apache Arrow (C++): /home/wesm/code/arrow/cpp/src/arrow/ipc/message.h File Reference</title>
+<title>Apache Arrow (C++): /apache-arrow/arrow/cpp/src/arrow/ipc/message.h File Reference</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>

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/785c5862/docs/cpp/message_8h_source.html
----------------------------------------------------------------------
diff --git a/docs/cpp/message_8h_source.html b/docs/cpp/message_8h_source.html
index 5c0e7d8..a7df52f 100644
--- a/docs/cpp/message_8h_source.html
+++ b/docs/cpp/message_8h_source.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Apache Arrow (C++): /home/wesm/code/arrow/cpp/src/arrow/ipc/message.h Source File</title>
+<title>Apache Arrow (C++): /apache-arrow/arrow/cpp/src/arrow/ipc/message.h 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>
@@ -67,12 +67,12 @@ $(function() {
 <div class="title">message.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="message_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">// regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span class
 ="lineno">    6</span>&#160;<span class="comment">// &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// with 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,</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// software distributed u
 nder the License is distributed on an</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// specific language governing permissions and limitations</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// under the License.</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="comment">// C++ object model and user API for interprocess schema messaging</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 ARROW_IPC_MESSAGE_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define ARROW_IPC_MESSAGE_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;cstdint&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="linen
 o">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="status_8h.html">arrow/status.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="macros_8h.html">arrow/util/macros.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="visibility_8h.html">arrow/util/visibility.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearrow.html">arrow</a> {</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">class 
 </span>Buffer;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">namespace </span>io {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">class </span>InputStream;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">class </span>OutputStream;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">class </span>RandomAccessFile;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}  <span class="comment">// namespace io</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</s
 pan>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">namespace </span>ipc {</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"><a class="line" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77">   45</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77">MetadataVersion</a> : char { <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77ab4daca084ad9eabfc8de231929477ed6">V1</a>, <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77aec765f1adc3b4253f2d3b131a4a8618f">V2</a>, <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77ad5b50b8cf96bcc8aba90f306f5e6189c">V3</a> };</div><div class="line"><a name="l00046"></a><span class="lineno">   46</s
 pan>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">// ARROW-109: We set this number arbitrarily to help catch user mistakes. For</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">// deeply nested schemas, it is expected the user will indicate explicitly the</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">// maximum allowed recursion depth</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacearrow_1_1ipc.html#a2dfe6a86ac11df4637223d48d29111a9">   50</a></span>&#160;constexpr <span class="keywordtype">int</span> <a class="code" href="namespacearrow_1_1ipc.html#a2dfe6a86ac11df4637223d48d29111a9">kMaxNestingDepth</a> = 64;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><
 span class="lineno">   52</span>&#160;<span class="comment">// Read interface classes. We do not fully deserialize the flatbuffers so that</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">// individual fields metadata can be retrieved from very large schema without</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_message.html">   57</a></span>&#160;<span class="keyword">class </span>ARROW_EXPORT <a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a> {</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="l
 ine" href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">   59</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">Type</a> { NONE, SCHEMA, DICTIONARY_BATCH, RECORD_BATCH, TENSOR };</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a>(<span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; metadata, <span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; body);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  ~<a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a>();</div><div class="line"><a name="l00067"></a><span class="lin
 eno">   67</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keyword">static</span> <a class="code" href="classarrow_1_1_status.html">Status</a> Open(<span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; metadata,</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                     <span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; body, std::unique_ptr&lt;Message&gt;* out);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  <span class="keyword">static</span> <a class="code" href="classarrow_1_1_status.html">Status</a> ReadFrom(<span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; metadata, <a class="code" href="classarrow_1_1io_1_1_input_stream.html">io::InputStream</a>* stream,</div><div class="line"><a name="l00083"></
 a><span class="lineno">   83</span>&#160;                         std::unique_ptr&lt;Message&gt;* out);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  <span class="keywordtype">bool</span> Equals(<span class="keyword">const</span> <a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a>&amp; other) <span class="keyword">const</span>;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;  std::shared_ptr&lt;Buffer&gt; metadata() <span class="keyword">const</span>;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  std::shared_ptr&lt;Buffer&gt; body() <span class="keyword">const</span>;</div><div class="line"><a name="l00101
 "></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  <a class="code" href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">Type</a> type() <span class="keyword">const</span>;</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;  <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77">MetadataVersion</a> metadata_version() <span class="keyword">const</span>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">void</span>* header() <span class="keyword">const</span>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"
 ><a name="l00113"></a><span class="lineno">  113</span>&#160;  <a class="code" href="classarrow_1_1_status.html">Status</a> SerializeTo(<a class="code" href="classarrow_1_1io_1_1_output_stream.html">io::OutputStream</a>* file, int64_t* output_length) <span class="keyword">const</span>;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  <span class="comment">// Hide serialization details from user API</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  <span class="keyword">class </span>MessageImpl;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;  std::unique_ptr&lt;MessageImpl&gt; impl_;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</d
 iv><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  <a class="code" href="macros_8h.html#a40d72e185b1488b5659b761f0b6115bb">ARROW_DISALLOW_COPY_AND_ASSIGN</a>(<a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a>);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;};</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;ARROW_EXPORT std::string <a class="code" href="namespacearrow_1_1ipc.html#a145c8c6c849532881aef6580d5b0c7f0">FormatMessageType</a>(<a class="code" href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">Message::Type</a> type);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_message_reader.html">  127</a></span>&#16
 0;<span class="keyword">class </span>ARROW_EXPORT <a class="code" href="classarrow_1_1ipc_1_1_message_reader.html">MessageReader</a> {</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classarrow_1_1ipc_1_1_message_reader.html">MessageReader</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classarrow_1_1_status.html">Status</a> ReadNextMessage(std::unique_ptr&lt;Message&gt;* message) = 0;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;};</div><div class="line"><a name="l00137"></a><span class="lineno">  137</sp
 an>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">  140</a></span>&#160;<span class="keyword">class </span>ARROW_EXPORT <a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">InputStreamMessageReader</a> : <span class="keyword">public</span> <a class="code" href="classarrow_1_1ipc_1_1_message_reader.html">MessageReader</a> {</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#ac0414a4001c5cd3d446f3b2a7cc1b7c5">  142</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#ac0414a4001c5cd3d446f3b2a7cc1b7c5">InputStreamMessageReader</a>(<a class="code" href="classarrow_1_1io_1_1_
 input_stream.html">io::InputStream</a>* stream) : stream_(stream) {}</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#a67dd22c1f6db9eb4c60ed5774b7c7bce">  144</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#a67dd22c1f6db9eb4c60ed5774b7c7bce">InputStreamMessageReader</a>(<span class="keyword">const</span> std::shared_ptr&lt;io::InputStream&gt;&amp; owned_stream)</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;      : <a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">InputStreamMessageReader</a>(owned_stream.get()) {</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    owned_stream_ = owned_stream;</div><div class="line"><a name="l0
 0147"></a><span class="lineno">  147</span>&#160;  }</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;  ~<a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">InputStreamMessageReader</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;  <a class="code" href="classarrow_1_1_status.html">Status</a> ReadNextMessage(std::unique_ptr&lt;Message&gt;* message) <span class="keyword">override</span>;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;  <a class="code" href="classarrow_1_1io_1_1_inpu
 t_stream.html">io::InputStream</a>* stream_;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;  std::shared_ptr&lt;io::InputStream&gt; owned_stream_;</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;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;ARROW_EXPORT</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<a class="code" href="classarrow_1_1_status.html">Status</a> <a class="code" href="namespacearrow_1_1ipc.html#a9cb8d4170270e9d596778268686585c8">ReadMessage</a>(<span class="keyword">const</span> int64_t offset, <span class="keyword">const</span> int32_t metadata_length,</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                   <a class="code" href="classarrow_1_1io_1_1_random_access_file.html">io::RandomAccessFile</
 a>* file, std::unique_ptr&lt;Message&gt;* message);</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;ARROW_EXPORT</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<a class="code" href="classarrow_1_1_status.html">Status</a> <a class="code" href="namespacearrow_1_1ipc.html#a9cb8d4170270e9d596778268686585c8">ReadMessage</a>(<a class="code" href="classarrow_1_1io_1_1_input_stream.html">io::InputStream</a>* stream, std::unique_ptr&lt;Message&gt;* message);</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;}  <span class="comment">// namespace ipc</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;}  <span class="comment">// namespace arrow</span></div><div class="line"><a name="l00186
 "></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">#endif  // ARROW_IPC_MESSAGE_H</span></div><div class="ttc" id="namespacearrow_1_1ipc_html_a9cb8d4170270e9d596778268686585c8"><div class="ttname"><a href="namespacearrow_1_1ipc.html#a9cb8d4170270e9d596778268686585c8">arrow::ipc::ReadMessage</a></div><div class="ttdeci">Status ReadMessage(io::InputStream *stream, std::unique_ptr&lt; Message &gt; *message)</div><div class="ttdoc">Read encapulated RPC message (metadata and body) from InputStream. </div></div>
-<div class="ttc" id="classarrow_1_1io_1_1_output_stream_html"><div class="ttname"><a href="classarrow_1_1io_1_1_output_stream.html">arrow::io::OutputStream</a></div><div class="ttdef"><b>Definition:</b> interfaces.h:110</div></div>
+<a href="message_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">// regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span class
 ="lineno">    6</span>&#160;<span class="comment">// &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// with 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,</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// software distributed u
 nder the License is distributed on an</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// specific language governing permissions and limitations</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// under the License.</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="comment">// C++ object model and user API for interprocess schema messaging</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 ARROW_IPC_MESSAGE_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define ARROW_IPC_MESSAGE_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;cstdint&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="linen
 o">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="status_8h.html">arrow/status.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="macros_8h.html">arrow/util/macros.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="visibility_8h.html">arrow/util/visibility.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearrow.html">arrow</a> {</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">class 
 </span>Buffer;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">namespace </span>io {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">class </span>InputStream;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">class </span>OutputStream;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">class </span>RandomAccessFile;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}  <span class="comment">// namespace io</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</s
 pan>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">namespace </span>ipc {</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"><a class="line" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77">   45</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77">MetadataVersion</a> : char { <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77ab4daca084ad9eabfc8de231929477ed6">V1</a>, <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77aec765f1adc3b4253f2d3b131a4a8618f">V2</a>, <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77ad5b50b8cf96bcc8aba90f306f5e6189c">V3</a> };</div><div class="line"><a name="l00046"></a><span class="lineno">   46</s
 pan>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">// ARROW-109: We set this number arbitrarily to help catch user mistakes. For</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">// deeply nested schemas, it is expected the user will indicate explicitly the</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">// maximum allowed recursion depth</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacearrow_1_1ipc.html#a2dfe6a86ac11df4637223d48d29111a9">   50</a></span>&#160;constexpr <span class="keywordtype">int</span> <a class="code" href="namespacearrow_1_1ipc.html#a2dfe6a86ac11df4637223d48d29111a9">kMaxNestingDepth</a> = 64;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><
 span class="lineno">   52</span>&#160;<span class="comment">// Read interface classes. We do not fully deserialize the flatbuffers so that</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">// individual fields metadata can be retrieved from very large schema without</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_message.html">   57</a></span>&#160;<span class="keyword">class </span>ARROW_EXPORT <a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a> {</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="l
 ine" href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">   59</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">Type</a> { NONE, SCHEMA, DICTIONARY_BATCH, RECORD_BATCH, TENSOR };</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a>(<span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; metadata, <span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; body);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  ~<a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a>();</div><div class="line"><a name="l00067"></a><span class="lin
 eno">   67</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keyword">static</span> <a class="code" href="classarrow_1_1_status.html">Status</a> Open(<span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; metadata,</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                     <span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; body, std::unique_ptr&lt;Message&gt;* out);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  <span class="keyword">static</span> <a class="code" href="classarrow_1_1_status.html">Status</a> ReadFrom(<span class="keyword">const</span> std::shared_ptr&lt;Buffer&gt;&amp; metadata, <a class="code" href="classarrow_1_1io_1_1_input_stream.html">io::InputStream</a>* stream,</div><div class="line"><a name="l00083"></
 a><span class="lineno">   83</span>&#160;                         std::unique_ptr&lt;Message&gt;* out);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <span class="keywordtype">bool</span> Equals(<span class="keyword">const</span> <a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a>&amp; other) <span class="keyword">const</span>;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;  std::shared_ptr&lt;Buffer&gt; metadata() <span class="keyword">const</span>;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;  std::shared_ptr&lt;Buffer&gt; body() <span class="keyword">const</span>;</div><div class="line"><a name="l00100
 "></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  <a class="code" href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">Type</a> type() <span class="keyword">const</span>;</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;  <a class="code" href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77">MetadataVersion</a> metadata_version() <span class="keyword">const</span>;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">void</span>* header() <span class="keyword">const</span>;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"
 ><a name="l00112"></a><span class="lineno">  112</span>&#160;  <a class="code" href="classarrow_1_1_status.html">Status</a> SerializeTo(<a class="code" href="classarrow_1_1io_1_1_output_stream.html">io::OutputStream</a>* file, int64_t* output_length) <span class="keyword">const</span>;</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">private</span>:</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  <span class="comment">// Hide serialization details from user API</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  <span class="keyword">class </span>MessageImpl;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  std::unique_ptr&lt;MessageImpl&gt; impl_;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</d
 iv><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  <a class="code" href="macros_8h.html#a40d72e185b1488b5659b761f0b6115bb">ARROW_DISALLOW_COPY_AND_ASSIGN</a>(<a class="code" href="classarrow_1_1ipc_1_1_message.html">Message</a>);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;ARROW_EXPORT std::string <a class="code" href="namespacearrow_1_1ipc.html#a145c8c6c849532881aef6580d5b0c7f0">FormatMessageType</a>(<a class="code" href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">Message::Type</a> type);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_message_reader.html">  126</a></span>&#16
 0;<span class="keyword">class </span>ARROW_EXPORT <a class="code" href="classarrow_1_1ipc_1_1_message_reader.html">MessageReader</a> {</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classarrow_1_1ipc_1_1_message_reader.html">MessageReader</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classarrow_1_1_status.html">Status</a> ReadNextMessage(std::unique_ptr&lt;Message&gt;* message) = 0;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;};</div><div class="line"><a name="l00136"></a><span class="lineno">  136</sp
 an>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">  139</a></span>&#160;<span class="keyword">class </span>ARROW_EXPORT <a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">InputStreamMessageReader</a> : <span class="keyword">public</span> <a class="code" href="classarrow_1_1ipc_1_1_message_reader.html">MessageReader</a> {</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#ac0414a4001c5cd3d446f3b2a7cc1b7c5">  141</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#ac0414a4001c5cd3d446f3b2a7cc1b7c5">InputStreamMessageReader</a>(<a class="code" href="classarrow_1_1io_1_1_
 input_stream.html">io::InputStream</a>* stream) : stream_(stream) {}</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"><a class="line" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#a67dd22c1f6db9eb4c60ed5774b7c7bce">  143</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#a67dd22c1f6db9eb4c60ed5774b7c7bce">InputStreamMessageReader</a>(<span class="keyword">const</span> std::shared_ptr&lt;io::InputStream&gt;&amp; owned_stream)</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;      : <a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">InputStreamMessageReader</a>(owned_stream.get()) {</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    owned_stream_ = owned_stream;</div><div class="line"><a name="l0
 0146"></a><span class="lineno">  146</span>&#160;  }</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;  ~<a class="code" href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">InputStreamMessageReader</a>();</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;  <a class="code" href="classarrow_1_1_status.html">Status</a> ReadNextMessage(std::unique_ptr&lt;Message&gt;* message) <span class="keyword">override</span>;</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">private</span>:</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;  <a class="code" href="classarrow_1_1io_1_1_inpu
 t_stream.html">io::InputStream</a>* stream_;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;  std::shared_ptr&lt;io::InputStream&gt; owned_stream_;</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="l00171"></a><span class="lineno">  171</span>&#160;ARROW_EXPORT</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<a class="code" href="classarrow_1_1_status.html">Status</a> <a class="code" href="namespacearrow_1_1ipc.html#a9cb8d4170270e9d596778268686585c8">ReadMessage</a>(<span class="keyword">const</span> int64_t offset, <span class="keyword">const</span> int32_t metadata_length,</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                   <a class="code" href="classarrow_1_1io_1_1_random_access_file.html">io::RandomAccessFile</
 a>* file, std::unique_ptr&lt;Message&gt;* message);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;ARROW_EXPORT</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<a class="code" href="classarrow_1_1_status.html">Status</a> <a class="code" href="namespacearrow_1_1ipc.html#a9cb8d4170270e9d596778268686585c8">ReadMessage</a>(<a class="code" href="classarrow_1_1io_1_1_input_stream.html">io::InputStream</a>* stream, std::unique_ptr&lt;Message&gt;* message);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;}  <span class="comment">// namespace ipc</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;}  <span class="comment">// namespace arrow</span></div><div class="line"><a name="l00185
 "></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">#endif  // ARROW_IPC_MESSAGE_H</span></div><div class="ttc" id="namespacearrow_1_1ipc_html_a9cb8d4170270e9d596778268686585c8"><div class="ttname"><a href="namespacearrow_1_1ipc.html#a9cb8d4170270e9d596778268686585c8">arrow::ipc::ReadMessage</a></div><div class="ttdeci">Status ReadMessage(io::InputStream *stream, std::unique_ptr&lt; Message &gt; *message)</div><div class="ttdoc">Read encapulated RPC message (metadata and body) from InputStream. </div></div>
+<div class="ttc" id="classarrow_1_1io_1_1_output_stream_html"><div class="ttname"><a href="classarrow_1_1io_1_1_output_stream.html">arrow::io::OutputStream</a></div><div class="ttdef"><b>Definition:</b> interfaces.h:115</div></div>
 <div class="ttc" id="namespacearrow_1_1ipc_html_a145c8c6c849532881aef6580d5b0c7f0"><div class="ttname"><a href="namespacearrow_1_1ipc.html#a145c8c6c849532881aef6580d5b0c7f0">arrow::ipc::FormatMessageType</a></div><div class="ttdeci">std::string FormatMessageType(Message::Type type)</div></div>
 <div class="ttc" id="classarrow_1_1ipc_1_1_message_html"><div class="ttname"><a href="classarrow_1_1ipc_1_1_message.html">arrow::ipc::Message</a></div><div class="ttdoc">An IPC message including metadata and body. </div><div class="ttdef"><b>Definition:</b> message.h:57</div></div>
-<div class="ttc" id="classarrow_1_1io_1_1_input_stream_html"><div class="ttname"><a href="classarrow_1_1io_1_1_input_stream.html">arrow::io::InputStream</a></div><div class="ttdef"><b>Definition:</b> interfaces.h:115</div></div>
-<div class="ttc" id="classarrow_1_1io_1_1_random_access_file_html"><div class="ttname"><a href="classarrow_1_1io_1_1_random_access_file.html">arrow::io::RandomAccessFile</a></div><div class="ttdef"><b>Definition:</b> interfaces.h:120</div></div>
+<div class="ttc" id="classarrow_1_1io_1_1_input_stream_html"><div class="ttname"><a href="classarrow_1_1io_1_1_input_stream.html">arrow::io::InputStream</a></div><div class="ttdef"><b>Definition:</b> interfaces.h:120</div></div>
+<div class="ttc" id="classarrow_1_1io_1_1_random_access_file_html"><div class="ttname"><a href="classarrow_1_1io_1_1_random_access_file.html">arrow::io::RandomAccessFile</a></div><div class="ttdef"><b>Definition:</b> interfaces.h:125</div></div>
 <div class="ttc" id="classarrow_1_1_status_html"><div class="ttname"><a href="classarrow_1_1_status.html">arrow::Status</a></div><div class="ttdef"><b>Definition:</b> status.h:106</div></div>
 <div class="ttc" id="macros_8h_html"><div class="ttname"><a href="macros_8h.html">macros.h</a></div></div>
 <div class="ttc" id="classarrow_1_1ipc_1_1_message_html_a6d6973b3b03de50d7be9dbab4db910db"><div class="ttname"><a href="classarrow_1_1ipc_1_1_message.html#a6d6973b3b03de50d7be9dbab4db910db">arrow::ipc::Message::Type</a></div><div class="ttdeci">Type</div><div class="ttdef"><b>Definition:</b> message.h:59</div></div>
@@ -84,10 +84,10 @@ $(function() {
 <div class="ttc" id="namespacearrow_1_1ipc_html_aa5d7ec68a8c707271bab98af9bc0ac77ad5b50b8cf96bcc8aba90f306f5e6189c"><div class="ttname"><a href="namespacearrow_1_1ipc.html#aa5d7ec68a8c707271bab98af9bc0ac77ad5b50b8cf96bcc8aba90f306f5e6189c">arrow::ipc::MetadataVersion::V3</a></div></div>
 <div class="ttc" id="namespacearrow_1_1ipc_html_a2dfe6a86ac11df4637223d48d29111a9"><div class="ttname"><a href="namespacearrow_1_1ipc.html#a2dfe6a86ac11df4637223d48d29111a9">arrow::ipc::kMaxNestingDepth</a></div><div class="ttdeci">constexpr int kMaxNestingDepth</div><div class="ttdef"><b>Definition:</b> message.h:50</div></div>
 <div class="ttc" id="status_8h_html"><div class="ttname"><a href="status_8h.html">status.h</a></div></div>
-<div class="ttc" id="classarrow_1_1ipc_1_1_input_stream_message_reader_html_ac0414a4001c5cd3d446f3b2a7cc1b7c5"><div class="ttname"><a href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#ac0414a4001c5cd3d446f3b2a7cc1b7c5">arrow::ipc::InputStreamMessageReader::InputStreamMessageReader</a></div><div class="ttdeci">InputStreamMessageReader(io::InputStream *stream)</div><div class="ttdef"><b>Definition:</b> message.h:142</div></div>
-<div class="ttc" id="classarrow_1_1ipc_1_1_message_reader_html"><div class="ttname"><a href="classarrow_1_1ipc_1_1_message_reader.html">arrow::ipc::MessageReader</a></div><div class="ttdoc">Abstract interface for a sequence of messages. </div><div class="ttdef"><b>Definition:</b> message.h:127</div></div>
-<div class="ttc" id="classarrow_1_1ipc_1_1_input_stream_message_reader_html"><div class="ttname"><a href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">arrow::ipc::InputStreamMessageReader</a></div><div class="ttdoc">Implementation of MessageReader that reads from InputStream. </div><div class="ttdef"><b>Definition:</b> message.h:140</div></div>
-<div class="ttc" id="classarrow_1_1ipc_1_1_input_stream_message_reader_html_a67dd22c1f6db9eb4c60ed5774b7c7bce"><div class="ttname"><a href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#a67dd22c1f6db9eb4c60ed5774b7c7bce">arrow::ipc::InputStreamMessageReader::InputStreamMessageReader</a></div><div class="ttdeci">InputStreamMessageReader(const std::shared_ptr&lt; io::InputStream &gt; &amp;owned_stream)</div><div class="ttdef"><b>Definition:</b> message.h:144</div></div>
+<div class="ttc" id="classarrow_1_1ipc_1_1_input_stream_message_reader_html_ac0414a4001c5cd3d446f3b2a7cc1b7c5"><div class="ttname"><a href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#ac0414a4001c5cd3d446f3b2a7cc1b7c5">arrow::ipc::InputStreamMessageReader::InputStreamMessageReader</a></div><div class="ttdeci">InputStreamMessageReader(io::InputStream *stream)</div><div class="ttdef"><b>Definition:</b> message.h:141</div></div>
+<div class="ttc" id="classarrow_1_1ipc_1_1_message_reader_html"><div class="ttname"><a href="classarrow_1_1ipc_1_1_message_reader.html">arrow::ipc::MessageReader</a></div><div class="ttdoc">Abstract interface for a sequence of messages. </div><div class="ttdef"><b>Definition:</b> message.h:126</div></div>
+<div class="ttc" id="classarrow_1_1ipc_1_1_input_stream_message_reader_html"><div class="ttname"><a href="classarrow_1_1ipc_1_1_input_stream_message_reader.html">arrow::ipc::InputStreamMessageReader</a></div><div class="ttdoc">Implementation of MessageReader that reads from InputStream. </div><div class="ttdef"><b>Definition:</b> message.h:139</div></div>
+<div class="ttc" id="classarrow_1_1ipc_1_1_input_stream_message_reader_html_a67dd22c1f6db9eb4c60ed5774b7c7bce"><div class="ttname"><a href="classarrow_1_1ipc_1_1_input_stream_message_reader.html#a67dd22c1f6db9eb4c60ed5774b7c7bce">arrow::ipc::InputStreamMessageReader::InputStreamMessageReader</a></div><div class="ttdeci">InputStreamMessageReader(const std::shared_ptr&lt; io::InputStream &gt; &amp;owned_stream)</div><div class="ttdef"><b>Definition:</b> message.h:143</div></div>
 <div class="ttc" id="macros_8h_html_a40d72e185b1488b5659b761f0b6115bb"><div class="ttname"><a href="macros_8h.html#a40d72e185b1488b5659b761f0b6115bb">ARROW_DISALLOW_COPY_AND_ASSIGN</a></div><div class="ttdeci">#define ARROW_DISALLOW_COPY_AND_ASSIGN(TypeName)</div><div class="ttdef"><b>Definition:</b> macros.h:23</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/785c5862/docs/cpp/metadata-internal_8h.html
----------------------------------------------------------------------
diff --git a/docs/cpp/metadata-internal_8h.html b/docs/cpp/metadata-internal_8h.html
index a90cf91..9eb739a 100644
--- a/docs/cpp/metadata-internal_8h.html
+++ b/docs/cpp/metadata-internal_8h.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Apache Arrow (C++): /home/wesm/code/arrow/cpp/src/arrow/ipc/metadata-internal.h File Reference</title>
+<title>Apache Arrow (C++): /apache-arrow/arrow/cpp/src/arrow/ipc/metadata-internal.h File Reference</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>


Mime
View raw message