You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by uw...@apache.org on 2018/05/18 07:47:18 UTC

[17/51] [partial] arrow-site git commit: Update API docs

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/c77df435/docs/cpp/macros_8h_source.html
----------------------------------------------------------------------
diff --git a/docs/cpp/macros_8h_source.html b/docs/cpp/macros_8h_source.html
index 991dec0..c012576 100644
--- a/docs/cpp/macros_8h_source.html
+++ b/docs/cpp/macros_8h_source.html
@@ -70,7 +70,7 @@ $(function() {
 <div class="title">macros.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="macros_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 un
 der 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="preprocessor">#ifndef ARROW_UTIL_MACROS_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 
   19</span>&#160;<span class="preprocessor">#define ARROW_UTIL_MACROS_H</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// From Google gutil</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#ifndef ARROW_DISALLOW_COPY_AND_ASSIGN</span></div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="macros_8h.html#a40d72e185b1488b5659b761f0b6115bb">   23</a></span>&#160;<span class="preprocessor">#define ARROW_DISALLOW_COPY_AND_ASSIGN(TypeName) \</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">  TypeName(const TypeName&amp;) = delete;            \</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">  void operator=(co
 nst TypeName&amp;) = delete</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="macros_8h.html#aa696459b563e15751224cec3dabc50bc">   28</a></span>&#160;<span class="preprocessor">#define ARROW_UNUSED(x) (void)x</span></div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="macros_8h.html#a563379ffcc9ec4421d5fdeb876a194aa">   29</a></span>&#160;<span class="preprocessor">#define ARROW_ARG_UNUSED(x)</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">// GCC can be told that a certain branch is not likely to be taken (for</span></div><div
  class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">// instance, a CHECK failure), and use that information in static analysis.</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">// Giving it this information can help it optimize for the common case in</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">// the absence of better information (ie. -fprofile-arcs).</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#if defined(__GNUC__)</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define ARROW_PREDICT_FALSE(x) (__builtin_expect(x, 0))</span></div><div class="line"><a name="l0
 0038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define ARROW_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define ARROW_NORETURN __attribute__((noreturn))</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#define ARROW_PREFETCH(addr) __builtin_prefetch(addr)</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#define ARROW_NORETURN __declspec(noreturn)</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#define ARROW_PREDICT_FALSE(x) x</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 
   44</span>&#160;<span class="preprocessor">#define ARROW_PREDICT_TRUE(x) x</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#define ARROW_PREFETCH(addr)</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="macros_8h.html#a0406f232596131e1c5853411539ce0c7">   47</a></span>&#160;<span class="preprocessor">#define ARROW_NORETURN</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="macros_8h.html#a6f2ee7ad52872edb915cf48e163ac99c">   48</a></span>&#160;<span class="preprocessor">#define ARROW_PREDICT_FALSE(x) x</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="macros_8h.html#a1f418a9edc46d53e62732e7ccd06f329">   49</a></span>&#160;<span class="preprocessor">#define ARROW_PRE
 DICT_TRUE(x) x</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="macros_8h.html#a76175559bb2c4934d6084eafc14968ed">   50</a></span>&#160;<span class="preprocessor">#define ARROW_PREFETCH(addr)</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#if (defined(__GNUC__) || defined(__APPLE__))</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define ARROW_MUST_USE_RESULT __attribute__((warn_unused_result))</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div><div class="line"><a name="l00056"></a><span class="l
 ineno">   56</span>&#160;<span class="preprocessor">#define ARROW_MUST_USE_RESULT</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="macros_8h.html#a09069a1c5629cb028843a785b1f35bfe">   58</a></span>&#160;<span class="preprocessor">#define ARROW_MUST_USE_RESULT</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">// ----------------------------------------------------------------------</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">// C++/CLI support macros (see ARROW-1134)</span></div><div cla
 ss="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="preprocessor">#ifndef NULLPTR</span></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;<span class="preprocessor">#ifdef __cplusplus_cli</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#define NULLPTR __nullptr</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="macros_8h.html#a3ef7eab8cd0e570b6586628cc9d5ccab">   69</a></span>&#160;<span class="preprocessor">#define NULLPTR nullptr</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<sp
 an class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#endif  // ifndef NULLPTR</span></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="comment">// ----------------------------------------------------------------------</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">// macros to disable padding</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment">// these macros are portable across different compilers and platforms</span></div><div class="line"><a name="l00078"></a><span class
 ="lineno">   78</span>&#160;<span class="comment">//[https://github.com/google/flatbuffers/blob/master/include/flatbuffers/flatbuffers.h#L1355]</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#if !defined(MANUALLY_ALIGNED_STRUCT)</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#define MANUALLY_ALIGNED_STRUCT(alignment) \</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">  __pragma(pack(1));                       \</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">  struct __declspec(align(alignment))</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</s
 pan>&#160;<span class="preprocessor">#define STRUCT_END(name, size) \</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">  __pragma(pack());            \</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">  static_assert(sizeof(name) == size, &quot;compiler breaks packing rules&quot;)</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#elif defined(__GNUC__) || defined(__clang__)</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#define MANUALLY_ALIGNED_STRUCT(alignment) \</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">  _Pragma(&quot;pack(1)&quot;) struct __attribute__((aligned(alignment)))</span></div><div class="line"><a name="l00090"></a><span class=
 "lineno">   90</span>&#160;<span class="preprocessor">#define STRUCT_END(name, size) \</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">  _Pragma(&quot;pack()&quot;) static_assert(sizeof(name) == size, &quot;compiler breaks packing rules&quot;)</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#error Unknown compiler, please define structure alignment macros</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#endif  // !defined(MANUALLY_ALIGNED_STRUCT)</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</
 div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#endif  // ARROW_UTIL_MACROS_H</span></div></div><!-- fragment --></div><!-- contents -->
+<a href="macros_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 un
 der 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="preprocessor">#ifndef ARROW_UTIL_MACROS_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 
   19</span>&#160;<span class="preprocessor">#define ARROW_UTIL_MACROS_H</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// From Google gutil</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#ifndef ARROW_DISALLOW_COPY_AND_ASSIGN</span></div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="macros_8h.html#a40d72e185b1488b5659b761f0b6115bb">   23</a></span>&#160;<span class="preprocessor">#define ARROW_DISALLOW_COPY_AND_ASSIGN(TypeName) \</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">  TypeName(const TypeName&amp;) = delete;            \</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">  void operator=(co
 nst TypeName&amp;) = delete</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="macros_8h.html#aa696459b563e15751224cec3dabc50bc">   28</a></span>&#160;<span class="preprocessor">#define ARROW_UNUSED(x) (void)x</span></div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="macros_8h.html#a563379ffcc9ec4421d5fdeb876a194aa">   29</a></span>&#160;<span class="preprocessor">#define ARROW_ARG_UNUSED(x)</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">// GCC can be told that a certain branch is not likely to be taken (for</span></div><div
  class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">// instance, a CHECK failure), and use that information in static analysis.</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">// Giving it this information can help it optimize for the common case in</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">// the absence of better information (ie. -fprofile-arcs).</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#if defined(__GNUC__)</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define ARROW_PREDICT_FALSE(x) (__builtin_expect(x, 0))</span></div><div class="line"><a name="l0
 0038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define ARROW_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define ARROW_NORETURN __attribute__((noreturn))</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#define ARROW_PREFETCH(addr) __builtin_prefetch(addr)</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#define ARROW_NORETURN __declspec(noreturn)</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#define ARROW_PREDICT_FALSE(x) x</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 
   44</span>&#160;<span class="preprocessor">#define ARROW_PREDICT_TRUE(x) x</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#define ARROW_PREFETCH(addr)</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="macros_8h.html#a0406f232596131e1c5853411539ce0c7">   47</a></span>&#160;<span class="preprocessor">#define ARROW_NORETURN</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="macros_8h.html#a6f2ee7ad52872edb915cf48e163ac99c">   48</a></span>&#160;<span class="preprocessor">#define ARROW_PREDICT_FALSE(x) x</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="macros_8h.html#a1f418a9edc46d53e62732e7ccd06f329">   49</a></span>&#160;<span class="preprocessor">#define ARROW_PRE
 DICT_TRUE(x) x</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="macros_8h.html#a76175559bb2c4934d6084eafc14968ed">   50</a></span>&#160;<span class="preprocessor">#define ARROW_PREFETCH(addr)</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#if (defined(__GNUC__) || defined(__APPLE__))</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define ARROW_MUST_USE_RESULT __attribute__((warn_unused_result))</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div><div class="line"><a name="l00056"></a><span class="l
 ineno">   56</span>&#160;<span class="preprocessor">#define ARROW_MUST_USE_RESULT</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="macros_8h.html#a09069a1c5629cb028843a785b1f35bfe">   58</a></span>&#160;<span class="preprocessor">#define ARROW_MUST_USE_RESULT</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">// ----------------------------------------------------------------------</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">// C++/CLI support macros (see ARROW-1134)</span></div><div cla
 ss="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="preprocessor">#ifndef NULLPTR</span></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;<span class="preprocessor">#ifdef __cplusplus_cli</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#define NULLPTR __nullptr</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="macros_8h.html#a3ef7eab8cd0e570b6586628cc9d5ccab">   69</a></span>&#160;<span class="preprocessor">#define NULLPTR nullptr</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<sp
 an class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#endif  // ifndef NULLPTR</span></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="comment">// ----------------------------------------------------------------------</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">// clang-format off</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment">// [[deprecated]] is only available in C++14, use this for the time being</span></div><div class="line"><a name="l00078"></a><span class="lin
 eno">   78</span>&#160;<span class="comment">// This macro takes an optional deprecation message</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#if __cplusplus &lt;= 201103L</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor"># ifdef __GNUC__</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#  define ARROW_DEPRECATED(...) __attribute__((deprecated(__VA_ARGS__)))</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor"># elif defined(_MSC_VER)</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#  define ARROW_DEPRECATED(...) __declspec(deprecated(__VA_ARGS__))</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class=
 "preprocessor"># else</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="macros_8h.html#aa2ec0a506575823661e32d0be213b070">   85</a></span>&#160;<span class="preprocessor">#  define ARROW_DEPRECATED(...)</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor"># endif</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#  define ARROW_DEPRECATED(...) [[deprecated(__VA_ARGS__)]]</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment">// --
 --------------------------------------------------------------------</span></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;<span class="comment">// macros to disable padding</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment">// these macros are portable across different compilers and platforms</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment">//[https://github.com/google/flatbuffers/blob/master/include/flatbuffers/flatbuffers.h#L1355]</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#if !defined(MANUALLY_ALIGNED_STRUCT)</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div><div clas
 s="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="preprocessor">#define MANUALLY_ALIGNED_STRUCT(alignment) \</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">  __pragma(pack(1));                       \</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor">  struct __declspec(align(alignment))</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#define STRUCT_END(name, size) \</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor">  __pragma(pack());            \</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">  static_assert(sizeof(name) == size, &quot;compiler breaks packing rules&quot;)</span></div><div class="line"><a name="l0
 0104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor">#elif defined(__GNUC__) || defined(__clang__)</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#define MANUALLY_ALIGNED_STRUCT(alignment) \</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="preprocessor">  _Pragma(&quot;pack(1)&quot;) struct __attribute__((aligned(alignment)))</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#define STRUCT_END(name, size) \</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">  _Pragma(&quot;pack()&quot;) static_assert(sizeof(name) == size, &quot;compiler breaks packing rules&quot;)</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#else</span></div><div class=
 "line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#error Unknown compiler, please define structure alignment macros</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#endif  // !defined(MANUALLY_ALIGNED_STRUCT)</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="comment">// ----------------------------------------------------------------------</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="comment">// From googletest</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment">// (also in parquet-cpp)</span></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;<span class="comment">// When you need to test the private or protected members of a class,</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">// use the FRIEND_TEST macro to declare your tests as friends of the</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">// class.  For example:</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment">// class MyClass {</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment">//  private:</span></div><div class="line"><a name="l00124"></a><span
  class="lineno">  124</span>&#160;<span class="comment">//   void MyMethod();</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment">//   FRIEND_TEST(MyClassTest, MyMethod);</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">// };</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">// class MyClassTest : public testing::Test {</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">//   // ...</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">// };</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">//</span></div><div c
 lass="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment">// TEST_F(MyClassTest, MyMethod) {</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="comment">//   // Can call MyClass::MyMethod() here.</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment">// }</span></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"><a class="line" href="macros_8h.html#a8d443b4cc1d87a7a17943b8fbdbf3910">  136</a></span>&#160;<span class="preprocessor">#define FRIEND_TEST(test_case_name, test_name) \</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">  friend class test_case_name##_##test_name##_Test</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div c
 lass="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#endif  // ARROW_UTIL_MACROS_H</span></div></div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/c77df435/docs/cpp/md__windows.html
----------------------------------------------------------------------
diff --git a/docs/cpp/md__windows.html b/docs/cpp/md__windows.html
index e14c956..7e714bc 100644
--- a/docs/cpp/md__windows.html
+++ b/docs/cpp/md__windows.html
@@ -110,7 +110,7 @@ $(function() {
 <p><code>-DBOOST_ROOT</code> - sets the root directory of boost libs. (Optional)</p>
 <p><code>-DBOOST_LIBRARYDIR</code> - sets the directory with boost lib files. (Optional)</p>
 <p>Command line to build Arrow in Debug might look as following:</p>
-<div class="fragment"><div class="line">cd cpp</div><div class="line">mkdir build</div><div class="line">cd build</div><div class="line">cmake -G &quot;Visual Studio 14 2015 Win64&quot; ^</div><div class="line">      -DARROW_BOOST_USE_SHARED=OFF ^</div><div class="line">      -DCMAKE_BUILD_TYPE=Debug ^</div><div class="line">      -DBOOST_ROOT=C:/local/boost_1_63_0  ^</div><div class="line">      -DBOOST_LIBRARYDIR=C:/local/boost_1_63_0/lib64-msvc-14.0 ^</div><div class="line">      ..</div><div class="line">cmake --build . --config Debug</div></div><!-- fragment --><p>To get the latest build instructions, you can reference <a href="https://github.com/apache/arrow/blob/master/ci/msvc-build.bat">msvc-build.bat</a>, which is used by automated Appveyor builds. </p>
+<div class="fragment"><div class="line">cd cpp</div><div class="line">mkdir build</div><div class="line">cd build</div><div class="line">cmake -G &quot;Visual Studio 14 2015 Win64&quot; ^</div><div class="line">      -DARROW_BOOST_USE_SHARED=OFF ^</div><div class="line">      -DCMAKE_BUILD_TYPE=Debug ^</div><div class="line">      -DBOOST_ROOT=C:/local/boost_1_63_0  ^</div><div class="line">      -DBOOST_LIBRARYDIR=C:/local/boost_1_63_0/lib64-msvc-14.0 ^</div><div class="line">      ..</div><div class="line">cmake --build . --config Debug</div></div><!-- fragment --><p>To get the latest build instructions, you can reference <a href="https://github.com/apache/arrow/blob/master/ci/cpp-python-msvc-build.bat">cpp-python-msvc-build.bat</a>, which is used by automated Appveyor builds. </p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/c77df435/docs/cpp/md_tutorials_plasma.html
----------------------------------------------------------------------
diff --git a/docs/cpp/md_tutorials_plasma.html b/docs/cpp/md_tutorials_plasma.html
index ad92bdf..0ae6fdb 100644
--- a/docs/cpp/md_tutorials_plasma.html
+++ b/docs/cpp/md_tutorials_plasma.html
@@ -81,7 +81,7 @@ $(function() {
 <div class="fragment"><div class="line">plasma_store -m 1000000000 -s /tmp/plasma 1&gt; /dev/null 2&gt; /dev/null &amp;</div></div><!-- fragment --><p>The Plasma store will instead run silently in the background. To stop running the Plasma store in this case, issue the command below:</p>
 <div class="fragment"><div class="line">killall plasma_store</div></div><!-- fragment --><h2>Creating a Plasma client </h2>
 <p>Now that the Plasma object store is up and running, it is time to make a client process connect to it. To use the Plasma object store as a client, your application should initialize a <code><a class="el" href="classplasma_1_1_plasma_client.html">plasma::PlasmaClient</a></code> object and tell it to connect to the socket specified when starting up the Plasma object store.</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="client_8h.html">plasma/client.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceplasma.html">plasma</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">  <span class="comment">// Start up and connect a Plasma client.</span></div><div class="line">  <a class="code" href="classplasma_1_1_plasma_client.html">PlasmaClient</a> client;</div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#ac024b42271ad80c467636fc5b16968a3">Connect</a>(<span class="stringliteral">&quot;/tmp/plasma&quot;</span>, <span class="stringliteral">&q
 uot;&quot;</span>, <a class="code" href="client_8h.html#ac6a4959f813315451e993a3dfe28cac7">PLASMA_DEFAULT_RELEASE_DELAY</a>));</div><div class="line">  <span class="comment">// Disconnect the Plasma client.</span></div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a82ff4d7b988c040aa46674a2fa907eff">Disconnect</a>());</div><div class="line">}</div></div><!-- fragment --><p>Save this program in a file <code>test.cc</code> and compile it with</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="client_8h.html">plasma/client.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceplasma.html">plasma</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">  <span class="comment">// Start up and connect a Plasma client.</span></div><div class="line">  <a class="code" href="classplasma_1_1_plasma_client.html">PlasmaClient</a> client;</div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a533f9e28c04f5e8f081232151345e49b">Connect</a>(<span class="stringliteral">&quot;/tmp/plasma&quot;</span>, <span class="stringliteral">&
 quot;&quot;</span>));</div><div class="line">  <span class="comment">// Disconnect the Plasma client.</span></div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a82ff4d7b988c040aa46674a2fa907eff">Disconnect</a>());</div><div class="line">}</div></div><!-- fragment --><p>Save this program in a file <code>test.cc</code> and compile it with</p>
 <div class="fragment"><div class="line">g++ test.cc `pkg-config --cflags --libs plasma` --std=c++11</div></div><!-- fragment --><p>Note that multiple clients can be created within the same process.</p>
 <p>Note that a <code>PlasmaClient</code> object is <b>not thread safe</b>.</p>
 <p>If the Plasma store is still running, you can now execute the <code>a.out</code> executable and the store will print something like</p>
@@ -96,19 +96,19 @@ $(function() {
 <p>Now that you learned about Object IDs that are used to refer to objects, let's look at how objects can be stored in Plasma.</p>
 <p>Storing objects is a two-stage process. First a buffer is allocated with a call to <code>Create</code>. Then it can be constructed in place by the client. Then it is made immutable and shared with other clients via a call to <code>Seal</code>.</p>
 <p>The <code>Create</code> call blocks while the Plasma store allocates a buffer of the appropriate size. The client will then map the buffer into its own address space. At this point the object can be constructed in place using a pointer that was written by the <code>Create</code> command.</p>
-<div class="fragment"><div class="line">int64_t data_size = 100;</div><div class="line"><span class="comment">// The address of the buffer allocated by the Plasma store will be written at</span></div><div class="line"><span class="comment">// this address.</span></div><div class="line">uint8_t* data;</div><div class="line"><span class="comment">// Create a Plasma object by specifying its ID and size.</span></div><div class="line"><a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a0b6e4bc16429191e1449c60f020b4dd7">Create</a>(object_id, data_size, NULL, 0, &amp;data));</div></div><!-- fragment --><p>You can also specify metadata for the object; the third argument is the metadata (as raw bytes) and the fourth argument is the size of the metadata.</p>
-<div class="fragment"><div class="line"><span class="comment">// Create a Plasma object with metadata.</span></div><div class="line">int64_t data_size = 100;</div><div class="line">std::string metadata = <span class="stringliteral">&quot;{&#39;author&#39;: &#39;john&#39;}&quot;</span>;</div><div class="line">uint8_t* data;</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#a0b6e4bc16429191e1449c60f020b4dd7">Create</a>(object_id, data_size, (uint8_t*) metadata.data(), metadata.size(), &amp;data);</div></div><!-- fragment --><p>Now that we've obtained a pointer to our object's data, we can write our data to it:</p>
+<div class="fragment"><div class="line">int64_t data_size = 100;</div><div class="line"><span class="comment">// The address of the buffer allocated by the Plasma store will be written at</span></div><div class="line"><span class="comment">// this address.</span></div><div class="line">uint8_t* data;</div><div class="line"><span class="comment">// Create a Plasma object by specifying its ID and size.</span></div><div class="line"><a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a2f00bd06c6a50a82b200884e84cd8d9d">Create</a>(object_id, data_size, NULL, 0, &amp;data));</div></div><!-- fragment --><p>You can also specify metadata for the object; the third argument is the metadata (as raw bytes) and the fourth argument is the size of the metadata.</p>
+<div class="fragment"><div class="line"><span class="comment">// Create a Plasma object with metadata.</span></div><div class="line">int64_t data_size = 100;</div><div class="line">std::string metadata = <span class="stringliteral">&quot;{&#39;author&#39;: &#39;john&#39;}&quot;</span>;</div><div class="line">uint8_t* data;</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#a2f00bd06c6a50a82b200884e84cd8d9d">Create</a>(object_id, data_size, (uint8_t*) metadata.data(), metadata.size(), &amp;data);</div></div><!-- fragment --><p>Now that we've obtained a pointer to our object's data, we can write our data to it:</p>
 <div class="fragment"><div class="line"><span class="comment">// Write some data for the Plasma object.</span></div><div class="line"><span class="keywordflow">for</span> (int64_t i = 0; i &lt; data_size; i++) {</div><div class="line">    data[i] = <span class="keyword">static_cast&lt;</span>uint8_t<span class="keyword">&gt;</span>(i % 4);</div><div class="line">}</div></div><!-- fragment --><p>When the client is done, the client <b>seals</b> the buffer, making the object immutable, and making it available to other Plasma clients:</p>
 <div class="fragment"><div class="line"><span class="comment">// Seal the object. This makes it available for all clients.</span></div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#ae06a7b43528f66b2dd28abf7138e5b6d">Seal</a>(object_id);</div></div><!-- fragment --><p>Here is an example that combines all these features:</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="client_8h.html">plasma/client.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceplasma.html">plasma</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">  <span class="comment">// Start up and connect a Plasma client.</span></div><div class="line">  <a class="code" href="classplasma_1_1_plasma_client.html">PlasmaClient</a> client;</div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#ac024b42271ad80c467636fc5b16968a3">Connect</a>(<span class="stringliteral">&quot;/tmp/plasma&quot;</span>, <span class="stringliteral">&q
 uot;&quot;</span>, <a class="code" href="client_8h.html#ac6a4959f813315451e993a3dfe28cac7">PLASMA_DEFAULT_RELEASE_DELAY</a>));</div><div class="line">  <span class="comment">// Create an object with a fixed ObjectID.</span></div><div class="line">  <a class="code" href="classplasma_1_1_unique_i_d.html">ObjectID</a> object_id = <a class="code" href="classplasma_1_1_unique_i_d.html#a35bce29897b79eb6215fbd1b9ebe99bb">ObjectID::from_binary</a>(<span class="stringliteral">&quot;00000000000000000000&quot;</span>);</div><div class="line">  int64_t data_size = 1000;</div><div class="line">  uint8_t *data;</div><div class="line">  std::string metadata = <span class="stringliteral">&quot;{&#39;author&#39;: &#39;john&#39;}&quot;</span>;</div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a0b6e4bc16429191e1449c60f020b4dd7">Create</a>(object_id, data_size, (uint8_t*) me
 tadata.data(), metadata.size(), &amp;data));</div><div class="line">  <span class="comment">// Write some data into the object.</span></div><div class="line">  <span class="keywordflow">for</span> (int64_t i = 0; i &lt; data_size; i++) {</div><div class="line">    data[i] = <span class="keyword">static_cast&lt;</span>uint8_t<span class="keyword">&gt;</span>(i % 4);</div><div class="line">  }</div><div class="line">  <span class="comment">// Seal the object.</span></div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#ae06a7b43528f66b2dd28abf7138e5b6d">Seal</a>(object_id));</div><div class="line">  <span class="comment">// Disconnect the client.</span></div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a82ff4d7b988c040aa46674a2fa907e
 ff">Disconnect</a>());</div><div class="line">}</div></div><!-- fragment --><p>This example can be compiled with</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="client_8h.html">plasma/client.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceplasma.html">plasma</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">  <span class="comment">// Start up and connect a Plasma client.</span></div><div class="line">  <a class="code" href="classplasma_1_1_plasma_client.html">PlasmaClient</a> client;</div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a533f9e28c04f5e8f081232151345e49b">Connect</a>(<span class="stringliteral">&quot;/tmp/plasma&quot;</span>, <span class="stringliteral">&
 quot;&quot;</span>));</div><div class="line">  <span class="comment">// Create an object with a fixed ObjectID.</span></div><div class="line">  <a class="code" href="classplasma_1_1_unique_i_d.html">ObjectID</a> object_id = <a class="code" href="classplasma_1_1_unique_i_d.html#a35bce29897b79eb6215fbd1b9ebe99bb">ObjectID::from_binary</a>(<span class="stringliteral">&quot;00000000000000000000&quot;</span>);</div><div class="line">  int64_t data_size = 1000;</div><div class="line">  uint8_t *data;</div><div class="line">  std::string metadata = <span class="stringliteral">&quot;{&#39;author&#39;: &#39;john&#39;}&quot;</span>;</div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a2f00bd06c6a50a82b200884e84cd8d9d">Create</a>(object_id, data_size, (uint8_t*) metadata.data(), metadata.size(), &amp;data));</div><div class="line">  <span class="comment">// Write som
 e data into the object.</span></div><div class="line">  <span class="keywordflow">for</span> (int64_t i = 0; i &lt; data_size; i++) {</div><div class="line">    data[i] = <span class="keyword">static_cast&lt;</span>uint8_t<span class="keyword">&gt;</span>(i % 4);</div><div class="line">  }</div><div class="line">  <span class="comment">// Seal the object.</span></div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#ae06a7b43528f66b2dd28abf7138e5b6d">Seal</a>(object_id));</div><div class="line">  <span class="comment">// Disconnect the client.</span></div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a82ff4d7b988c040aa46674a2fa907eff">Disconnect</a>());</div><div class="line">}</div></div><!-- fragment --><p>This example can be com
 piled with</p>
 <div class="fragment"><div class="line">g++ create.cc `pkg-config --cflags --libs plasma` --std=c++11 -o create</div></div><!-- fragment --><p>To verify that an object exists in the Plasma object store, you can call <code>PlasmaClient::Contains()</code> to check if an object has been created and sealed for a given Object ID. Note that this function will still return False if the object has been created, but not yet sealed:</p>
 <div class="fragment"><div class="line"><span class="comment">// Check if an object has been created and sealed.</span></div><div class="line"><span class="keywordtype">bool</span> has_object;</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#af573b2ba35f48bf012393e9438ef086d">Contains</a>(object_id, &amp;has_object);</div><div class="line"><span class="keywordflow">if</span> (has_object) {</div><div class="line">    <span class="comment">// Object has been created and sealed, proceed</span></div><div class="line">}</div></div><!-- fragment --><h2>Getting an Object </h2>
 <p>After an object has been sealed, any client who knows the Object ID can get the object. To store the retrieved object contents, you should create an <code>ObjectBuffer</code>, then call <code>PlasmaClient::Get()</code> as follows:</p>
-<div class="fragment"><div class="line"><span class="comment">// Get from the Plasma store by Object ID.</span></div><div class="line">ObjectBuffer object_buffer;</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#a3b0e952a210fbdf028f5727c2007977e">Get</a>(&amp;object_id, 1, -1, &amp;object_buffer);</div></div><!-- fragment --><p><code>PlasmaClient::Get()</code> isn't limited to fetching a single object from the Plasma store at once. You can specify an array of Object IDs and <code>ObjectBuffers</code> to fetch at once, so long as you also specify the number of objects being fetched:</p>
-<div class="fragment"><div class="line"><span class="comment">// Get two objects at once from the Plasma store. This function</span></div><div class="line"><span class="comment">// call will block until both objects have been fetched.</span></div><div class="line">ObjectBuffer multiple_buffers[2];</div><div class="line"><a class="code" href="namespaceplasma.html#adf1aa2f87f6f11e1993628f574e31e75">ObjectID</a> multiple_ids[2] = {object_id1, object_id2};</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#a3b0e952a210fbdf028f5727c2007977e">Get</a>(multiple_ids, 2, -1, multiple_buffers);</div></div><!-- fragment --><p>Since <code>PlasmaClient::Get()</code> is a blocking function call, it may be necessary to limit the amount of time the function is allowed to take when trying to fetch from the Plasma store. You can pass in a timeout in milliseconds when calling <code>PlasmaClient::Get().</code> To use <code>PlasmaClient::Get()</code> without a timeout,
  just pass in -1 like in the previous example calls:</p>
-<div class="fragment"><div class="line"><span class="comment">// Make the function call give up fetching the object if it takes</span></div><div class="line"><span class="comment">// more than 100 milliseconds.</span></div><div class="line">int64_t timeout = 100;</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#a3b0e952a210fbdf028f5727c2007977e">Get</a>(&amp;object_id, 1, timeout, &amp;object_buffer);</div></div><!-- fragment --><p>Finally, to access the object, you can access the <code>data</code> and <code>metadata</code> attributes of the <code>ObjectBuffer</code>. The <code>data</code> can be indexed like any array:</p>
+<div class="fragment"><div class="line"><span class="comment">// Get from the Plasma store by Object ID.</span></div><div class="line">ObjectBuffer object_buffer;</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#a5b2626c32d557a57e66800027ba24b96">Get</a>(&amp;object_id, 1, -1, &amp;object_buffer);</div></div><!-- fragment --><p><code>PlasmaClient::Get()</code> isn't limited to fetching a single object from the Plasma store at once. You can specify an array of Object IDs and <code>ObjectBuffers</code> to fetch at once, so long as you also specify the number of objects being fetched:</p>
+<div class="fragment"><div class="line"><span class="comment">// Get two objects at once from the Plasma store. This function</span></div><div class="line"><span class="comment">// call will block until both objects have been fetched.</span></div><div class="line">ObjectBuffer multiple_buffers[2];</div><div class="line"><a class="code" href="namespaceplasma.html#adf1aa2f87f6f11e1993628f574e31e75">ObjectID</a> multiple_ids[2] = {object_id1, object_id2};</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#a5b2626c32d557a57e66800027ba24b96">Get</a>(multiple_ids, 2, -1, multiple_buffers);</div></div><!-- fragment --><p>Since <code>PlasmaClient::Get()</code> is a blocking function call, it may be necessary to limit the amount of time the function is allowed to take when trying to fetch from the Plasma store. You can pass in a timeout in milliseconds when calling <code>PlasmaClient::Get().</code> To use <code>PlasmaClient::Get()</code> without a timeout,
  just pass in -1 like in the previous example calls:</p>
+<div class="fragment"><div class="line"><span class="comment">// Make the function call give up fetching the object if it takes</span></div><div class="line"><span class="comment">// more than 100 milliseconds.</span></div><div class="line">int64_t timeout = 100;</div><div class="line">client.<a class="code" href="classplasma_1_1_plasma_client.html#a5b2626c32d557a57e66800027ba24b96">Get</a>(&amp;object_id, 1, timeout, &amp;object_buffer);</div></div><!-- fragment --><p>Finally, to access the object, you can access the <code>data</code> and <code>metadata</code> attributes of the <code>ObjectBuffer</code>. The <code>data</code> can be indexed like any array:</p>
 <div class="fragment"><div class="line"><span class="comment">// Access object data.</span></div><div class="line">uint8_t* data = object_buffer.data;</div><div class="line">int64_t data_size = object_buffer.data_size;</div><div class="line"></div><div class="line"><span class="comment">// Access object metadata.</span></div><div class="line">uint8_t* metadata = object_buffer.metadata;</div><div class="line">uint8_t metadata_size = object_buffer.metadata_size;</div><div class="line"></div><div class="line"><span class="comment">// Index into data array.</span></div><div class="line">uint8_t first_data_byte = data[0];</div></div><!-- fragment --><p>Here is a longer example that shows these capabilities:</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="client_8h.html">plasma/client.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceplasma.html">plasma</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">  <span class="comment">// Start up and connect a Plasma client.</span></div><div class="line">  <a class="code" href="classplasma_1_1_plasma_client.html">PlasmaClient</a> client;</div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#ac024b42271ad80c467636fc5b16968a3">Connect</a>(<span class="stringliteral">&quot;/tmp/plasma&quot;</span>, <span class="stringliteral">&q
 uot;&quot;</span>, <a class="code" href="client_8h.html#ac6a4959f813315451e993a3dfe28cac7">PLASMA_DEFAULT_RELEASE_DELAY</a>));</div><div class="line">  <a class="code" href="classplasma_1_1_unique_i_d.html">ObjectID</a> object_id = <a class="code" href="classplasma_1_1_unique_i_d.html#a35bce29897b79eb6215fbd1b9ebe99bb">ObjectID::from_binary</a>(<span class="stringliteral">&quot;00000000000000000000&quot;</span>);</div><div class="line">  <a class="code" href="structplasma_1_1_object_buffer.html">ObjectBuffer</a> object_buffer;</div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a3b0e952a210fbdf028f5727c2007977e">Get</a>(&amp;object_id, 1, -1, &amp;object_buffer));</div><div class="line"></div><div class="line">  <span class="comment">// Retrieve object data.</span></div><div class="line">  uint8_t* data = object_buffer.<a class="code" href="structplasma_1_1
 _object_buffer.html#ace0c6be03d13cc503d665fe976557558">data</a>;</div><div class="line">  int64_t data_size = object_buffer.<a class="code" href="structplasma_1_1_object_buffer.html#a7f517c4d5049a45fd91056288fd9d572">data_size</a>;</div><div class="line"></div><div class="line">  <span class="comment">// Check that the data agrees with what was written in the other process.</span></div><div class="line">  <span class="keywordflow">for</span> (int64_t i = 0; i &lt; data_size; i++) {</div><div class="line">    <a class="code" href="logging_8h.html#a389e6c69f3ba2e62c5a9e0372059f1a4">ARROW_CHECK</a>(data[i] == static_cast&lt;uint8_t&gt;(i % 4));</div><div class="line">  }</div><div class="line"></div><div class="line">  <span class="comment">// Disconnect the client.</span></div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a82ff4d7b988c040aa46674a2fa907eff">D
 isconnect</a>());</div><div class="line">}</div></div><!-- fragment --><p>If you compile it with</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="client_8h.html">plasma/client.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceplasma.html">plasma</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">  <span class="comment">// Start up and connect a Plasma client.</span></div><div class="line">  <a class="code" href="classplasma_1_1_plasma_client.html">PlasmaClient</a> client;</div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a533f9e28c04f5e8f081232151345e49b">Connect</a>(<span class="stringliteral">&quot;/tmp/plasma&quot;</span>, <span class="stringliteral">&
 quot;&quot;</span>));</div><div class="line">  <a class="code" href="classplasma_1_1_unique_i_d.html">ObjectID</a> object_id = <a class="code" href="classplasma_1_1_unique_i_d.html#a35bce29897b79eb6215fbd1b9ebe99bb">ObjectID::from_binary</a>(<span class="stringliteral">&quot;00000000000000000000&quot;</span>);</div><div class="line">  <a class="code" href="structplasma_1_1_object_buffer.html">ObjectBuffer</a> object_buffer;</div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a5b2626c32d557a57e66800027ba24b96">Get</a>(&amp;object_id, 1, -1, &amp;object_buffer));</div><div class="line"></div><div class="line">  <span class="comment">// Retrieve object data.</span></div><div class="line">  uint8_t* data = object_buffer.<a class="code" href="structplasma_1_1_object_buffer.html#ace0c6be03d13cc503d665fe976557558">data</a>;</div><div class="line">  int64_t data_s
 ize = object_buffer.data_size;</div><div class="line"></div><div class="line">  <span class="comment">// Check that the data agrees with what was written in the other process.</span></div><div class="line">  <span class="keywordflow">for</span> (int64_t i = 0; i &lt; data_size; i++) {</div><div class="line">    <a class="code" href="logging_8h.html#a389e6c69f3ba2e62c5a9e0372059f1a4">ARROW_CHECK</a>(data[i] == static_cast&lt;uint8_t&gt;(i % 4));</div><div class="line">  }</div><div class="line"></div><div class="line">  <span class="comment">// Disconnect the client.</span></div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a82ff4d7b988c040aa46674a2fa907eff">Disconnect</a>());</div><div class="line">}</div></div><!-- fragment --><p>If you compile it with</p>
 <div class="fragment"><div class="line">g++ get.cc `pkg-config --cflags --libs plasma` --std=c++11 -o get</div></div><!-- fragment --><p>and run it with <code>./get</code>, all the assertions will pass if you run the <code>create</code> example from above on the same Plasma store.</p>
 <h2>Object Lifetime Management </h2>
 <p>The Plasma store internally does reference counting to make sure objects that are mapped into the address space of one of the clients with <code>PlasmaClient::Get</code> are accessible. To unmap objects from a client, call <code>PlasmaClient::Release</code>. All objects that are mapped into a clients address space will automatically be released when the client is disconnected from the store (this happens even if the client process crashes or otherwise fails to call <code>Disconnect</code>).</p>
@@ -116,9 +116,9 @@ $(function() {
 <h2>Object notifications </h2>
 <p>Additionally, you can arrange to have Plasma notify you when objects are sealed in the object store. This may especially be handy when your program is collaborating with other Plasma clients, and needs to know when they make objects available.</p>
 <p>First, you can subscribe your current Plasma client to such notifications by getting a file descriptor:</p>
-<div class="fragment"><div class="line"><span class="comment">// Start receiving notifications into file_descriptor.</span></div><div class="line"><span class="keywordtype">int</span> fd;</div><div class="line"><a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a9975de6729ca214fa6cb8e9fe8abbb9a">Subscribe</a>(&amp;fd));</div></div><!-- fragment --><p>Once you have the file descriptor, you can have your current Plasma client wait to receive the next object notification. Object notifications include information such as Object ID, data size, and metadata size of the next newly available object:</p>
-<div class="fragment"><div class="line"><span class="comment">// Receive notification of the next newly available object.</span></div><div class="line"><span class="comment">// Notification information is stored in object_id, data_size, and metadata_size</span></div><div class="line"><a class="code" href="namespaceplasma.html#adf1aa2f87f6f11e1993628f574e31e75">ObjectID</a> object_id;</div><div class="line">int64_t data_size;</div><div class="line">int64_t metadata_size;</div><div class="line"><a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a5cf17041829848e39e1bfe9ea66ed2c2">GetNotification</a>(fd, &amp;object_id, &amp;data_size, &amp;metadata_size));</div><div class="line"></div><div class="line"><span class="comment">// Get the newly available object.</span></div><div class="line">ObjectBuffer object_buffer;</div><div class="line"><a class="code" href="status_8h.html#ab1dca026
 b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a3b0e952a210fbdf028f5727c2007977e">Get</a>(&amp;object_id, 1, -1, &amp;object_buffer));</div></div><!-- fragment --><p>Here is a full program that shows this capability:</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="client_8h.html">plasma/client.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceplasma.html">plasma</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">  <span class="comment">// Start up and connect a Plasma client.</span></div><div class="line">  <a class="code" href="classplasma_1_1_plasma_client.html">PlasmaClient</a> client;</div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#ac024b42271ad80c467636fc5b16968a3">Connect</a>(<span class="stringliteral">&quot;/tmp/plasma&quot;</span>, <span class="stringliteral">&q
 uot;&quot;</span>, <a class="code" href="client_8h.html#ac6a4959f813315451e993a3dfe28cac7">PLASMA_DEFAULT_RELEASE_DELAY</a>));</div><div class="line"></div><div class="line">  <span class="keywordtype">int</span> fd;</div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a9975de6729ca214fa6cb8e9fe8abbb9a">Subscribe</a>(&amp;fd));</div><div class="line"></div><div class="line">  <a class="code" href="classplasma_1_1_unique_i_d.html">ObjectID</a> object_id;</div><div class="line">  int64_t data_size;</div><div class="line">  int64_t metadata_size;</div><div class="line">  <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div><div class="line">    <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a5cf17041829848e39e1bfe9ea66ed2c2">G
 etNotification</a>(fd, &amp;object_id, &amp;data_size, &amp;metadata_size));</div><div class="line"></div><div class="line">    std::cout &lt;&lt; <span class="stringliteral">&quot;Received object notification for object_id = &quot;</span></div><div class="line">              &lt;&lt; object_id.hex() &lt;&lt; <span class="stringliteral">&quot;, with data_size = &quot;</span> &lt;&lt; data_size</div><div class="line">              &lt;&lt; <span class="stringliteral">&quot;, and metadata_size = &quot;</span> &lt;&lt; metadata_size &lt;&lt; std::endl;</div><div class="line">  }</div><div class="line"></div><div class="line">  <span class="comment">// Disconnect the client.</span></div><div class="line">  <a class="code" href="status_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a82ff4d7b988c040aa46674a2fa907eff">Disconnect</a>());</div><div class="line">}</div></div><!-- fragment --><p>If you compile it wi
 th</p>
+<div class="fragment"><div class="line"><span class="comment">// Start receiving notifications into file_descriptor.</span></div><div class="line"><span class="keywordtype">int</span> fd;</div><div class="line"><a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a9975de6729ca214fa6cb8e9fe8abbb9a">Subscribe</a>(&amp;fd));</div></div><!-- fragment --><p>Once you have the file descriptor, you can have your current Plasma client wait to receive the next object notification. Object notifications include information such as Object ID, data size, and metadata size of the next newly available object:</p>
+<div class="fragment"><div class="line"><span class="comment">// Receive notification of the next newly available object.</span></div><div class="line"><span class="comment">// Notification information is stored in object_id, data_size, and metadata_size</span></div><div class="line"><a class="code" href="namespaceplasma.html#adf1aa2f87f6f11e1993628f574e31e75">ObjectID</a> object_id;</div><div class="line">int64_t data_size;</div><div class="line">int64_t metadata_size;</div><div class="line"><a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a5cf17041829848e39e1bfe9ea66ed2c2">GetNotification</a>(fd, &amp;object_id, &amp;data_size, &amp;metadata_size));</div><div class="line"></div><div class="line"><span class="comment">// Get the newly available object.</span></div><div class="line">ObjectBuffer object_buffer;</div><div class="line"><a class="code" href="logging_8h.html#ab1dca0
 26b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a5b2626c32d557a57e66800027ba24b96">Get</a>(&amp;object_id, 1, -1, &amp;object_buffer));</div></div><!-- fragment --><p>Here is a full program that shows this capability:</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="client_8h.html">plasma/client.h</a>&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceplasma.html">plasma</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">  <span class="comment">// Start up and connect a Plasma client.</span></div><div class="line">  <a class="code" href="classplasma_1_1_plasma_client.html">PlasmaClient</a> client;</div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a533f9e28c04f5e8f081232151345e49b">Connect</a>(<span class="stringliteral">&quot;/tmp/plasma&quot;</span>, <span class="stringliteral">&
 quot;&quot;</span>));</div><div class="line"></div><div class="line">  <span class="keywordtype">int</span> fd;</div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a9975de6729ca214fa6cb8e9fe8abbb9a">Subscribe</a>(&amp;fd));</div><div class="line"></div><div class="line">  <a class="code" href="classplasma_1_1_unique_i_d.html">ObjectID</a> object_id;</div><div class="line">  int64_t data_size;</div><div class="line">  int64_t metadata_size;</div><div class="line">  <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div><div class="line">    <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a5cf17041829848e39e1bfe9ea66ed2c2">GetNotification</a>(fd, &amp;object_id, &amp;data_size, &amp;metadata_size));</div><div class="line"></d
 iv><div class="line">    std::cout &lt;&lt; <span class="stringliteral">&quot;Received object notification for object_id = &quot;</span></div><div class="line">              &lt;&lt; object_id.hex() &lt;&lt; <span class="stringliteral">&quot;, with data_size = &quot;</span> &lt;&lt; data_size</div><div class="line">              &lt;&lt; <span class="stringliteral">&quot;, and metadata_size = &quot;</span> &lt;&lt; metadata_size &lt;&lt; std::endl;</div><div class="line">  }</div><div class="line"></div><div class="line">  <span class="comment">// Disconnect the client.</span></div><div class="line">  <a class="code" href="logging_8h.html#ab1dca026b4840fea1e82df4c176de6b3">ARROW_CHECK_OK</a>(client.<a class="code" href="classplasma_1_1_plasma_client.html#a82ff4d7b988c040aa46674a2fa907eff">Disconnect</a>());</div><div class="line">}</div></div><!-- fragment --><p>If you compile it with</p>
 <div class="fragment"><div class="line">g++ subscribe.cc `pkg-config --cflags --libs plasma` --std=c++11 -o subscribe</div></div><!-- fragment --><p>and invoke <code>./create</code> and <code>./subscribe</code> while the Plasma store is running, you can observe the new object arriving. </p>
 </div></div><!-- contents -->
 <!-- start footer part -->

http://git-wip-us.apache.org/repos/asf/arrow-site/blob/c77df435/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 ed95416..75e165e 100644
--- a/docs/cpp/md_tutorials_row_wise_conversion.html
+++ b/docs/cpp/md_tutorials_row_wise_conversion.html
@@ -73,7 +73,7 @@ $(function() {
 <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">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>
+<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 = arrow::Table::Make(schema,</div><div class="line">    {id_array, cost_array, cost_components_array});</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>
 <p>To convert an Arrow table back into the same row-wise representation as in the above section, we first will check that the table conforms to our expected schema and then will build up the vector of rows incrementally.</p>
 <p>For the check if the table is as expected, we can utilise solely its schema.</p>