You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2017/10/03 01:59:13 UTC

[1/3] mesos-site git commit: Updated the website built from mesos SHA: 2f3ceb4.

Repository: mesos-site
Updated Branches:
  refs/heads/asf-site 61f17a313 -> ab5626ca0


http://git-wip-us.apache.org/repos/asf/mesos-site/blob/ab5626ca/content/api/latest/c++/include_2mesos_2state_2protobuf_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/include_2mesos_2state_2protobuf_8hpp_source.html b/content/api/latest/c++/include_2mesos_2state_2protobuf_8hpp_source.html
index e70879b..683a8bc 100644
--- a/content/api/latest/c++/include_2mesos_2state_2protobuf_8hpp_source.html
+++ b/content/api/latest/c++/include_2mesos_2state_2protobuf_8hpp_source.html
@@ -249,7 +249,7 @@
 <div class="ttc" id="structNone_html"><div class="ttname"><a href="structNone.html">None</a></div><div class="ttdef"><b>Definition:</b> none.hpp:27</div></div>
 <div class="ttc" id="classTry_html_a0b98f95163b8a38daafd1651b043a276"><div class="ttname"><a href="classTry.html#a0b98f95163b8a38daafd1651b043a276">Try::isError</a></div><div class="ttdeci">bool isError() const </div><div class="ttdef"><b>Definition:</b> try.hpp:71</div></div>
 <div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
-<div class="ttc" id="namespaceJSON_html_a93c179a1a5bd4164169d47cb1803f2a6"><div class="ttname"><a href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON::protobuf</a></div><div class="ttdeci">Object protobuf(const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:839</div></div>
+<div class="ttc" id="namespaceJSON_html_a93c179a1a5bd4164169d47cb1803f2a6"><div class="ttname"><a href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON::protobuf</a></div><div class="ttdeci">Object protobuf(const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:851</div></div>
 <div class="ttc" id="classmesos_1_1state_1_1protobuf_1_1Variable_html"><div class="ttname"><a href="classmesos_1_1state_1_1protobuf_1_1Variable.html">mesos::state::protobuf::Variable</a></div><div class="ttdef"><b>Definition:</b> protobuf.hpp:42</div></div>
 <div class="ttc" id="namespaceprocess_1_1network_html_ad067110a4b38cc83785a43f49bf6c8e2"><div class="ttname"><a href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">process::network::bind</a></div><div class="ttdeci">Try&lt; Nothing &gt; bind(int_fd s, const Address &amp;address)</div><div class="ttdef"><b>Definition:</b> network.hpp:46</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_html_a9c1f91de8a8a389b357b81f7b51b0554"><div class="ttname"><a href="namespacemesos_1_1internal.html#a9c1f91de8a8a389b357b81f7b51b0554">mesos::internal::serialize</a></div><div class="ttdeci">std::string serialize(ContentType contentType, const google::protobuf::Message &amp;message)</div></div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/ab5626ca/content/api/latest/c++/namespaceJSON.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespaceJSON.html b/content/api/latest/c++/namespaceJSON.html
index 99bb618..a40a858 100644
--- a/content/api/latest/c++/namespaceJSON.html
+++ b/content/api/latest/c++/namespaceJSON.html
@@ -739,7 +739,7 @@ template&lt;typename Dictionary , typename std::enable_if&lt; internal::IsSequen
 
 </div>
 </div>
-<a class="anchor" id="a6e349ac06c1e604507d62192200a4ad3"></a>
+<a class="anchor" id="a807f6fcb30f313973ce372135575db13"></a>
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -749,14 +749,14 @@ template&lt;typename Dictionary , typename std::enable_if&lt; internal::IsSequen
         <tr>
           <td class="memname">void JSON::json </td>
           <td>(</td>
-          <td class="paramtype">ObjectWriter *&#160;</td>
+          <td class="paramtype">NumberWriter *&#160;</td>
           <td class="paramname"><em>writer</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const Protobuf &amp;&#160;</td>
-          <td class="paramname"><em>protobuf</em>&#160;</td>
+          <td class="paramtype">const Number &amp;&#160;</td>
+          <td class="paramname"><em>number</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -773,7 +773,7 @@ template&lt;typename Dictionary , typename std::enable_if&lt; internal::IsSequen
 
 </div>
 </div>
-<a class="anchor" id="a807f6fcb30f313973ce372135575db13"></a>
+<a class="anchor" id="a6e349ac06c1e604507d62192200a4ad3"></a>
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -783,14 +783,14 @@ template&lt;typename Dictionary , typename std::enable_if&lt; internal::IsSequen
         <tr>
           <td class="memname">void JSON::json </td>
           <td>(</td>
-          <td class="paramtype">NumberWriter *&#160;</td>
+          <td class="paramtype">ObjectWriter *&#160;</td>
           <td class="paramname"><em>writer</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const Number &amp;&#160;</td>
-          <td class="paramname"><em>number</em>&#160;</td>
+          <td class="paramtype">const Protobuf &amp;&#160;</td>
+          <td class="paramname"><em>protobuf</em>&#160;</td>
         </tr>
         <tr>
           <td></td>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/ab5626ca/content/api/latest/c++/protobuf__utils_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/protobuf__utils_8hpp_source.html b/content/api/latest/c++/protobuf__utils_8hpp_source.html
index 5acfc95..33dd0e5 100644
--- a/content/api/latest/c++/protobuf__utils_8hpp_source.html
+++ b/content/api/latest/c++/protobuf__utils_8hpp_source.html
@@ -511,7 +511,7 @@
 <div class="ttc" id="structNone_html"><div class="ttname"><a href="structNone.html">None</a></div><div class="ttdef"><b>Definition:</b> none.hpp:27</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event_html_abfb70e9c628c704e940554fd37917d0d"><div class="ttname"><a href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#abfb70e9c628c704e940554fd37917d0d">mesos::internal::protobuf::master::event::createFrameworkRemoved</a></div><div class="ttdeci">mesos::master::Event createFrameworkRemoved(const FrameworkInfo &amp;frameworkInfo)</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1capabilities_html_aaa5ec6d56ccbeba718b9e8fc6ec2f7c9"><div class="ttname"><a href="namespacemesos_1_1internal_1_1capabilities.html#aaa5ec6d56ccbeba718b9e8fc6ec2f7c9">mesos::internal::capabilities::Type</a></div><div class="ttdeci">Type</div><div class="ttdef"><b>Definition:</b> capabilities.hpp:79</div></div>
-<div class="ttc" id="namespaceJSON_html_a93c179a1a5bd4164169d47cb1803f2a6"><div class="ttname"><a href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON::protobuf</a></div><div class="ttdeci">Object protobuf(const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:839</div></div>
+<div class="ttc" id="namespaceJSON_html_a93c179a1a5bd4164169d47cb1803f2a6"><div class="ttname"><a href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON::protobuf</a></div><div class="ttdeci">Object protobuf(const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:851</div></div>
 <div class="ttc" id="structmesos_1_1internal_1_1master_1_1Slave_html"><div class="ttname"><a href="structmesos_1_1internal_1_1master_1_1Slave.html">mesos::internal::master::Slave</a></div><div class="ttdef"><b>Definition:</b> master.hpp:116</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1protobuf_1_1maintenance_html_a3fa93ed41b8e957b26d4224eed6ee4a0"><div class="ttname"><a href="namespacemesos_1_1internal_1_1protobuf_1_1maintenance.html#a3fa93ed41b8e957b26d4224eed6ee4a0">mesos::internal::protobuf::maintenance::createWindow</a></div><div class="ttdeci">mesos::maintenance::Window createWindow(std::initializer_list&lt; MachineID &gt; ids, const Unavailability &amp;unavailability)</div><div class="ttdoc">Helper for constructing a maintenance Window. </div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1protobuf_html_a4a9e9b7ab44f03e60e1650ab6e1cea25"><div class="ttname"><a href="namespacemesos_1_1internal_1_1protobuf.html#a4a9e9b7ab44f03e60e1650ab6e1cea25">mesos::internal::protobuf::getCurrentTime</a></div><div class="ttdeci">TimeInfo getCurrentTime()</div></div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/ab5626ca/content/api/latest/c++/src_2master_2master_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2master_2master_8hpp_source.html b/content/api/latest/c++/src_2master_2master_8hpp_source.html
index ac65c41..b5f43cd 100644
--- a/content/api/latest/c++/src_2master_2master_8hpp_source.html
+++ b/content/api/latest/c++/src_2master_2master_8hpp_source.html
@@ -3320,7 +3320,7 @@
 <div class="ttc" id="structmesos_1_1internal_1_1master_1_1HttpConnection_html_aa1292eab78d27edb6c8aa6c5a941f01b"><div class="ttname"><a href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#aa1292eab78d27edb6c8aa6c5a941f01b">mesos::internal::master::HttpConnection::HttpConnection</a></div><div class="ttdeci">HttpConnection(const process::http::Pipe::Writer &amp;_writer, ContentType _contentType, UUID _streamId)</div><div class="ttdef"><b>Definition:</b> master.hpp:275</div></div>
 <div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
 <div class="ttc" id="classmesos_1_1internal_1_1master_1_1Master_html_acebf75338ede75fc4cf3bcbdba86e82b"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1Master.html#acebf75338ede75fc4cf3bcbdba86e82b">mesos::internal::master::Master::updateFramework</a></div><div class="ttdeci">void updateFramework(Framework *framework, const FrameworkInfo &amp;frameworkInfo, const std::set&lt; std::string &gt; &amp;suppressedRoles)</div></div>
-<div class="ttc" id="namespaceJSON_html_a93c179a1a5bd4164169d47cb1803f2a6"><div class="ttname"><a href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON::protobuf</a></div><div class="ttdeci">Object protobuf(const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:839</div></div>
+<div class="ttc" id="namespaceJSON_html_a93c179a1a5bd4164169d47cb1803f2a6"><div class="ttname"><a href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON::protobuf</a></div><div class="ttdeci">Object protobuf(const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:851</div></div>
 <div class="ttc" id="structmesos_1_1internal_1_1master_1_1Slave_html_aa3bfa200131dd8cd4e210bb93e15ec75"><div class="ttname"><a href="structmesos_1_1internal_1_1master_1_1Slave.html#aa3bfa200131dd8cd4e210bb93e15ec75">mesos::internal::master::Slave::addInverseOffer</a></div><div class="ttdeci">void addInverseOffer(InverseOffer *inverseOffer)</div></div>
 <div class="ttc" id="classmesos_1_1internal_1_1master_1_1Master_html_ab4ca75bc43d029f2a2d6ed7bc682cbaa"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1Master.html#ab4ca75bc43d029f2a2d6ed7bc682cbaa">mesos::internal::master::Master::_failoverFramework</a></div><div class="ttdeci">void _failoverFramework(Framework *framework)</div></div>
 <div class="ttc" id="structmesos_1_1internal_1_1master_1_1Slave_html_adb162982d3dd921c4a9c3114c88daf5c"><div class="ttname"><a href="structmesos_1_1internal_1_1master_1_1Slave.html#adb162982d3dd921c4a9c3114c88daf5c">mesos::internal::master::Slave::machineId</a></div><div class="ttdeci">const MachineID machineId</div><div class="ttdef"><b>Definition:</b> master.hpp:175</div></div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/ab5626ca/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html b/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html
index 811e46d..0533d77 100644
--- a/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html
+++ b/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html
@@ -3059,7 +3059,7 @@
 <div class="ttc" id="src_2resource__provider_2detector_8hpp_html"><div class="ttname"><a href="src_2resource__provider_2detector_8hpp.html">detector.hpp</a></div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1tests_1_1common_html_a46f6c9664f560b14ab6a14cb1a55409f"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests_1_1common.html#a46f6c9664f560b14ab6a14cb1a55409f">mesos::internal::tests::common::createTask</a></div><div class="ttdeci">TTaskInfo createTask(const TSlaveID &amp;slaveId, const TResources &amp;resources, const TCommandInfo &amp;command, const Option&lt; TExecutorID &gt; &amp;executorId=None(), const std::string &amp;name=&quot;test-task&quot;, const std::string &amp;id=UUID::random().toString())</div><div class="ttdef"><b>Definition:</b> mesos.hpp:741</div></div>
 <div class="ttc" id="classmesos_1_1internal_1_1tests_1_1executor_1_1TestMesos_html_a228e6f122e4674340978f1e8381ab62b"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1executor_1_1TestMesos.html#a228e6f122e4674340978f1e8381ab62b">mesos::internal::tests::executor::TestMesos::events</a></div><div class="ttdeci">void events(std::queue&lt; Event &gt; events)</div><div class="ttdef"><b>Definition:</b> mesos.hpp:2276</div></div>
-<div class="ttc" id="structJSON_1_1Protobuf_html"><div class="ttname"><a href="structJSON_1_1Protobuf.html">JSON::Protobuf</a></div><div class="ttdef"><b>Definition:</b> protobuf.hpp:695</div></div>
+<div class="ttc" id="structJSON_1_1Protobuf_html"><div class="ttname"><a href="structJSON_1_1Protobuf.html">JSON::Protobuf</a></div><div class="ttdef"><b>Definition:</b> protobuf.hpp:707</div></div>
 <div class="ttc" id="cluster_8hpp_html"><div class="ttname"><a href="cluster_8hpp.html">cluster.hpp</a></div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1tests_html_a074dbc9bf8a6132df54c5928ff45b483"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests.html#a074dbc9bf8a6132df54c5928ff45b483">mesos::internal::tests::FutureUnionProtobuf</a></div><div class="ttdeci">process::Future&lt; Message &gt; FutureUnionProtobuf(Message message, UnionType unionType, From from, To to, bool drop=false)</div><div class="ttdef"><b>Definition:</b> mesos.hpp:2606</div></div>
 <div class="ttc" id="namespacemesos_1_1internal_1_1local_html_a7d7b8de28b47a3753dcd4b094d5e6c6e"><div class="ttname"><a href="namespacemesos_1_1internal_1_1local.html#a7d7b8de28b47a3753dcd4b094d5e6c6e">mesos::internal::local::shutdown</a></div><div class="ttdeci">void shutdown()</div></div>


[2/3] mesos-site git commit: Updated the website built from mesos SHA: 2f3ceb4.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/ab5626ca/content/api/latest/c++/3rdparty_2stout_2include_2stout_2protobuf_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2stout_2include_2stout_2protobuf_8hpp_source.html b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2protobuf_8hpp_source.html
index 573f0f2..1d2b6c3 100644
--- a/content/api/latest/c++/3rdparty_2stout_2include_2stout_2protobuf_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2protobuf_8hpp_source.html
@@ -505,573 +505,585 @@
 <div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;          field-&gt;enum_type()-&gt;FindValueByName(<span class="keywordtype">string</span>.value);</div>
 <div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div>
 <div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        <span class="keywordflow">if</span> (descriptor == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;          <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Failed to find enum for &#39;&quot;</span> + <span class="keywordtype">string</span>.value + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        }</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;          reflection-&gt;AddEnum(message, field, descriptor);</div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;          reflection-&gt;SetEnum(message, field, descriptor);</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        }</div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;      }</div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;      <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Not expecting a JSON string for field &#39;&quot;</span> +</div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;                     field-&gt;name() + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    }</div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;  }</div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parser.html#a3a4a8f751bce63053d89a0f130b36f73">  471</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parser.html#a3a4a8f751bce63053d89a0f130b36f73">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Number.html">JSON::Number</a>&amp; number)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="keyword">  </span>{</div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <span class="keywordflow">switch</span> (field-&gt;type()) {</div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_DOUBLE:</div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;          reflection-&gt;AddDouble(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;<span class="keywordtype">double</span>&gt;());</div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;          reflection-&gt;SetDouble(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;<span class="keywordtype">double</span>&gt;());</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        }</div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_FLOAT:</div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;          reflection-&gt;AddFloat(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;<span class="keywordtype">float</span>&gt;());</div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;          reflection-&gt;SetFloat(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;<span class="keywordtype">float</span>&gt;());</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        }</div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_INT64:</div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_SINT64:</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_SFIXED64:</div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;          reflection-&gt;AddInt64(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;int64_t&gt;());</div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;          reflection-&gt;SetInt64(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;int64_t&gt;());</div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        }</div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_UINT64:</div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_FIXED64:</div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;          reflection-&gt;AddUInt64(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;uint64_t&gt;());</div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;          reflection-&gt;SetUInt64(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;uint64_t&gt;());</div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        }</div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_INT32:</div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_SINT32:</div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_SFIXED32:</div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;          reflection-&gt;AddInt32(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;int32_t&gt;());</div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;          reflection-&gt;SetInt32(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;int32_t&gt;());</div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        }</div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_UINT32:</div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_FIXED32:</div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;          reflection-&gt;AddUInt32(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;uint32_t&gt;());</div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;          reflection-&gt;SetUInt32(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;uint32_t&gt;());</div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;        }</div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;      <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Not expecting a JSON number for field &#39;&quot;</span> +</div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;                     field-&gt;name() + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    }</div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;  }</div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;</div>
-<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parser.html#acae4b0b238dcfb6546792638814df4d3">  529</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parser.html#acae4b0b238dcfb6546792638814df4d3">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Array.html">JSON::Array</a>&amp; array)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;<span class="keyword">  </span>{</div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    <span class="keywordflow">if</span> (!field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Not expecting a JSON array for field &#39;&quot;</span> +</div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;                   field-&gt;name() + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    }</div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;</div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value, array.<a class="code" href="structJSON_1_1Array.html#aed41033b7cd6a2c2e7dcc6f0c48a4563">values</a>) {</div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;      <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> apply =</div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        boost::apply_visitor(<a class="code" href="structprotobuf_1_1internal_1_1Parser.html#a7bb85ab464aae1862c4bd20ce528fbe2">Parser</a>(message, field), value);</div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;</div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;      <span class="keywordflow">if</span> (apply.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(apply.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;      }</div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    }</div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;</div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;  }</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;          <span class="keywordflow">if</span> (field-&gt;is_required()) {</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Failed to find enum for &#39;&quot;</span> + <span class="keywordtype">string</span>.value + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;          }</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;          <span class="comment">// Unrecognized enum value will be discarded if this is not a</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;          <span class="comment">// required enum field, which makes the field&#39;s `has..` accessor</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;          <span class="comment">// return false and its getter return the first value listed in</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;          <span class="comment">// the enum definition, or the default value if one is specified.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;          <span class="comment">//</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;          <span class="comment">// This is the deserialization behavior of proto2, see the link</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;          <span class="comment">// below for details:</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;          <span class="comment">// https://developers.google.com/protocol-buffers/docs/proto#updating</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;          <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        }</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;          reflection-&gt;AddEnum(message, field, descriptor);</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;          reflection-&gt;SetEnum(message, field, descriptor);</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        }</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;      }</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;      <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Not expecting a JSON string for field &#39;&quot;</span> +</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;                     field-&gt;name() + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    }</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;  }</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parser.html#a3a4a8f751bce63053d89a0f130b36f73">  483</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parser.html#a3a4a8f751bce63053d89a0f130b36f73">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Number.html">JSON::Number</a>&amp; number)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="keyword">  </span>{</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordflow">switch</span> (field-&gt;type()) {</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_DOUBLE:</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;          reflection-&gt;AddDouble(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;<span class="keywordtype">double</span>&gt;());</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;          reflection-&gt;SetDouble(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;<span class="keywordtype">double</span>&gt;());</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        }</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_FLOAT:</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;          reflection-&gt;AddFloat(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;<span class="keywordtype">float</span>&gt;());</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;          reflection-&gt;SetFloat(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;<span class="keywordtype">float</span>&gt;());</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        }</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_INT64:</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_SINT64:</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_SFIXED64:</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;          reflection-&gt;AddInt64(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;int64_t&gt;());</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;          reflection-&gt;SetInt64(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;int64_t&gt;());</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        }</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_UINT64:</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_FIXED64:</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;          reflection-&gt;AddUInt64(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;uint64_t&gt;());</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;          reflection-&gt;SetUInt64(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;uint64_t&gt;());</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        }</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_INT32:</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_SINT32:</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_SFIXED32:</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;          reflection-&gt;AddInt32(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;int32_t&gt;());</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;          reflection-&gt;SetInt32(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;int32_t&gt;());</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;        }</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_UINT32:</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_FIXED32:</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;          reflection-&gt;AddUInt32(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;uint32_t&gt;());</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;          reflection-&gt;SetUInt32(message, field, number.<a class="code" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">as</a>&lt;uint32_t&gt;());</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        }</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;      <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Not expecting a JSON number for field &#39;&quot;</span> +</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;                     field-&gt;name() + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    }</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;  }</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parser.html#acae4b0b238dcfb6546792638814df4d3">  541</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parser.html#acae4b0b238dcfb6546792638814df4d3">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Array.html">JSON::Array</a>&amp; array)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="keyword">  </span>{</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    <span class="keywordflow">if</span> (!field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Not expecting a JSON array for field &#39;&quot;</span> +</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;                   field-&gt;name() + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    }</div>
 <div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;</div>
-<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parser.html#aab7fd6adeb7c125547989b242f53870d">  548</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parser.html#aab7fd6adeb7c125547989b242f53870d">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Boolean.html">JSON::Boolean</a>&amp; <span class="keywordtype">boolean</span>)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;<span class="keyword">  </span>{</div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="keywordflow">switch</span> (field-&gt;type()) {</div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_BOOL:</div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;          reflection-&gt;AddBool(message, field, <span class="keywordtype">boolean</span>.value);</div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;          reflection-&gt;SetBool(message, field, <span class="keywordtype">boolean</span>.value);</div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        }</div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;      <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Not expecting a JSON boolean for field &#39;&quot;</span> +</div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;                     field-&gt;name() + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    }</div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;  }</div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;</div>
-<div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parser.html#aa702985522e2a7bf62e012da6f9a191d">  565</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parser.html#aa702985522e2a7bf62e012da6f9a191d">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Null.html">JSON::Null</a>&amp;)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="keyword">  </span>{</div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    <span class="comment">// We treat &#39;null&#39; as an unset field. Note that we allow</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    <span class="comment">// unset required fields here since the top-level parse</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    <span class="comment">// function is responsible for checking &#39;IsInitialized&#39;.</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;  }</div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;  google::protobuf::Message* message;</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;  <span class="keyword">const</span> google::protobuf::Reflection* reflection;</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;  <span class="keyword">const</span> google::protobuf::FieldDescriptor* field;</div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;};</div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;</div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="namespaceprotobuf_1_1internal.html#a3cfa5c20c57cdc039693ab9c1d417681">  580</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespaceprotobuf_1_1internal.html#a3cfa5c20c57cdc039693ab9c1d417681">parse</a>(</div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    google::protobuf::Message* message,</div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <span class="keyword">const</span> <a class="code" href="structJSON_1_1Object.html">JSON::Object</a>&amp; <span class="keywordtype">object</span>)</div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;{</div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;  <a class="code" href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a> (</div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;      <span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>, <span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value, <span class="keywordtype">object</span>.values) {</div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    <span class="comment">// Look for a field by this name.</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="keyword">const</span> google::protobuf::FieldDescriptor* field =</div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;      message-&gt;GetDescriptor()-&gt;FindFieldByName(name);</div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="keywordflow">if</span> (field != <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;      <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> apply =</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        boost::apply_visitor(<a class="code" href="structprotobuf_1_1internal_1_1Parser.html">Parser</a>(message, field), value);</div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;</div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;      <span class="keywordflow">if</span> (apply.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(apply.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;      }</div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    }</div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  }</div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;</div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;}</div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;</div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;</div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;<span class="comment">// Parses a single protobuf message of type T from a JSON::Object.</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<span class="comment">// NOTE: This struct is used by the public parse&lt;T&gt;() function below. See</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;<span class="comment">// comments there for the reason why we opted for this design.</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parse.html">  608</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structprotobuf_1_1internal_1_1Parse.html">Parse</a></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;{</div>
-<div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parse.html#a3203a718a8850dde037325b81d7d88c9">  610</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;T&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parse.html#a3203a718a8850dde037325b81d7d88c9">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value)</div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;  {</div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    static_assert(std::is_convertible&lt;T*, google::protobuf::Message*&gt;::value,</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;                  <span class="stringliteral">&quot;T must be a protobuf message&quot;</span>);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value, array.<a class="code" href="structJSON_1_1Array.html#aed41033b7cd6a2c2e7dcc6f0c48a4563">values</a>) {</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;      <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> apply =</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        boost::apply_visitor(<a class="code" href="structprotobuf_1_1internal_1_1Parser.html#a7bb85ab464aae1862c4bd20ce528fbe2">Parser</a>(message, field), value);</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;      <span class="keywordflow">if</span> (apply.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(apply.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;      }</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    }</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  }</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parser.html#aab7fd6adeb7c125547989b242f53870d">  560</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parser.html#aab7fd6adeb7c125547989b242f53870d">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Boolean.html">JSON::Boolean</a>&amp; <span class="keywordtype">boolean</span>)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;<span class="keyword">  </span>{</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    <span class="keywordflow">switch</span> (field-&gt;type()) {</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;      <span class="keywordflow">case</span> google::protobuf::FieldDescriptor::TYPE_BOOL:</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;        <span class="keywordflow">if</span> (field-&gt;is_repeated()) {</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;          reflection-&gt;AddBool(message, field, <span class="keywordtype">boolean</span>.value);</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;          reflection-&gt;SetBool(message, field, <span class="keywordtype">boolean</span>.value);</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        }</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;      <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Not expecting a JSON boolean for field &#39;&quot;</span> +</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;                     field-&gt;name() + <span class="stringliteral">&quot;&#39;&quot;</span>);</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    }</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;  }</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parser.html#aa702985522e2a7bf62e012da6f9a191d">  577</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parser.html#aa702985522e2a7bf62e012da6f9a191d">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Null.html">JSON::Null</a>&amp;)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="keyword">  </span>{</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    <span class="comment">// We treat &#39;null&#39; as an unset field. Note that we allow</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    <span class="comment">// unset required fields here since the top-level parse</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="comment">// function is responsible for checking &#39;IsInitialized&#39;.</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;  }</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;  google::protobuf::Message* message;</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;  <span class="keyword">const</span> google::protobuf::Reflection* reflection;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;  <span class="keyword">const</span> google::protobuf::FieldDescriptor* field;</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;};</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="namespaceprotobuf_1_1internal.html#a3cfa5c20c57cdc039693ab9c1d417681">  592</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespaceprotobuf_1_1internal.html#a3cfa5c20c57cdc039693ab9c1d417681">parse</a>(</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    google::protobuf::Message* message,</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    <span class="keyword">const</span> <a class="code" href="structJSON_1_1Object.html">JSON::Object</a>&amp; <span class="keywordtype">object</span>)</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;{</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;  <a class="code" href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a> (</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;      <span class="keyword">const</span> std::string&amp; <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>, <span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value, <span class="keywordtype">object</span>.values) {</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    <span class="comment">// Look for a field by this name.</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    <span class="keyword">const</span> google::protobuf::FieldDescriptor* field =</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;      message-&gt;GetDescriptor()-&gt;FindFieldByName(name);</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="keywordflow">if</span> (field != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;      <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> apply =</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        boost::apply_visitor(<a class="code" href="structprotobuf_1_1internal_1_1Parser.html">Parser</a>(message, field), value);</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;      <span class="keywordflow">if</span> (apply.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(apply.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;      }</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    }</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;  }</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;}</div>
 <div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;</div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    <span class="keyword">const</span> <a class="code" href="structJSON_1_1Object.html">JSON::Object</a>* <span class="keywordtype">object</span> = boost::get&lt;JSON::Object&gt;(&amp;value);</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keywordflow">if</span> (<span class="keywordtype">object</span> == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Expecting a JSON object&quot;</span>);</div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    }</div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;</div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    T message;</div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;</div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespaceprotobuf_1_1internal.html#a3cfa5c20c57cdc039693ab9c1d417681">parse</a> = <a class="code" href="namespaceprotobuf_1_1internal.html#a3cfa5c20c57cdc039693ab9c1d417681">internal::parse</a>(&amp;message, *<span class="keywordtype">object</span>);</div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    <span class="keywordflow">if</span> (parse.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(parse.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    }</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;<span class="comment">// Parses a single protobuf message of type T from a JSON::Object.</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<span class="comment">// NOTE: This struct is used by the public parse&lt;T&gt;() function below. See</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="comment">// comments there for the reason why we opted for this design.</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parse.html">  620</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structprotobuf_1_1internal_1_1Parse.html">Parse</a></div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;{</div>
+<div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parse.html#a3203a718a8850dde037325b81d7d88c9">  622</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;T&gt;</a> <a class="code" href="structprotobuf_1_1internal_1_1Parse.html#a3203a718a8850dde037325b81d7d88c9">operator()</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value)</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;  {</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    static_assert(std::is_convertible&lt;T*, google::protobuf::Message*&gt;::value,</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;                  <span class="stringliteral">&quot;T must be a protobuf message&quot;</span>);</div>
 <div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keywordflow">if</span> (!message.IsInitialized()) {</div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Missing required fields: &quot;</span> +</div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;                   message.InitializationErrorString());</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keyword">const</span> <a class="code" href="structJSON_1_1Object.html">JSON::Object</a>* <span class="keywordtype">object</span> = boost::get&lt;JSON::Object&gt;(&amp;value);</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="keywordflow">if</span> (<span class="keywordtype">object</span> == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Expecting a JSON object&quot;</span>);</div>
 <div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    }</div>
 <div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;</div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    <span class="keywordflow">return</span> message;</div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  }</div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;};</div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;</div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;</div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<span class="comment">// Partial specialization for RepeatedPtrField&lt;T&gt; to parse a sequence of</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;<span class="comment">// protobuf messages from a JSON::Array by repeatedly invoking Parse&lt;T&gt; to</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;<span class="comment">// facilitate conversions like JSON::Array -&gt; Resources.</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;<span class="comment">// NOTE: This struct is used by the public parse&lt;T&gt;() function below. See</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;<span class="comment">// comments there for the reason why we opted for this design.</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00643"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parse_3_01google_1_1protobuf_1_1RepeatedPtrField_3_01T_01_4_01_4.html">  643</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structprotobuf_1_1internal_1_1Parse.html">Parse</a>&lt;google::protobuf::RepeatedPtrField&lt;T&gt;&gt;</div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;{</div>
-<div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parse_3_01google_1_1protobuf_1_1RepeatedPtrField_3_01T_01_4_01_4.html#a92dbcc8b139a55707100a087533b967e">  645</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;google::protobuf::RepeatedPtrField&lt;T&gt;</a>&gt; <a class="code" href="structprotobuf_1_1internal_1_1Parse_3_01google_1_1protobuf_1_1RepeatedPtrField_3_01T_01_4_01_4.html#a92dbcc8b139a55707100a087533b967e">operator()</a>(</div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;      <span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value)</div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;  {</div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    static_assert(std::is_convertible&lt;T*, google::protobuf::Message*&gt;::value,</div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;                  <span class="stringliteral">&quot;T must be a protobuf message&quot;</span>);</div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;</div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    <span class="keyword">const</span> <a class="code" href="structJSON_1_1Array.html">JSON::Array</a>* array = boost::get&lt;JSON::Array&gt;(&amp;value);</div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    <span class="keywordflow">if</span> (array == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Expecting a JSON array&quot;</span>);</div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    }</div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    google::protobuf::RepeatedPtrField&lt;T&gt; collection;</div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    collection.Reserve(static_cast&lt;int&gt;(array-&gt;<a class="code" href="structJSON_1_1Array.html#aed41033b7cd6a2c2e7dcc6f0c48a4563">values</a>.size()));</div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    <span class="comment">// Parse messages one by one and propagate an error if it happens.</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; elem, array-&gt;<a class="code" href="structJSON_1_1Array.html#aed41033b7cd6a2c2e7dcc6f0c48a4563">values</a>) {</div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;      <a class="code" href="classTry.html">Try&lt;T&gt;</a> message = <a class="code" href="structprotobuf_1_1internal_1_1Parse.html">Parse&lt;T&gt;</a>()(elem);</div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;      <span class="keywordflow">if</span> (message.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(message.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;      }</div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;</div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;      collection.Add()-&gt;CopyFrom(message.<a class="code" href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>());</div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    }</div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;</div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    <span class="keywordflow">return</span> collection;</div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;  }</div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;};</div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;</div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;} <span class="comment">// namespace internal {</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;</div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;<span class="comment">// A dispatch wrapper which parses protobuf messages(s) from a given JSON value.</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<span class="comment">// We use partial specialization of</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;<span class="comment">//   - internal::Parse&lt;T&gt; for JSON::Object</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;<span class="comment">//   - internal::Parse&lt;google::protobuf::RepeatedPtrField&lt;T&gt;&gt; for JSON::Array</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;<span class="comment">// to determine whether T is a single message or a sequence of messages.</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="comment">// We cannot partially specialize function templates and overloaded function</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;<span class="comment">// approach combined with std::enable_if is not that clean, hence we leverage</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;<span class="comment">// partial specialization of class templates.</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="namespaceprotobuf.html#a9c1229ef45781eadc126cdb70b8ca741">  684</a></span>&#160;<a class="code" href="classTry.html">Try&lt;T&gt;</a> <a class="code" href="namespaceprotobuf.html#a9c1229ef45781eadc126cdb70b8ca741">parse</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value)</div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;{</div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="structprotobuf_1_1internal_1_1Parse.html">internal::Parse&lt;T&gt;</a>()(value);</div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;}</div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;</div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;} <span class="comment">// namespace protobuf {</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039ea0ecd11c1d7a287401d148a23bbd7a2f8">JSON</a> {</div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;<span class="comment">// The representation of generic protobuf =&gt; JSON,</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;<span class="comment">// e.g., `jsonify(JSON::Protobuf(message))`.</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="structJSON_1_1Protobuf.html">  695</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structJSON_1_1Protobuf.html">Protobuf</a> : <a class="code" href="structRepresentation.html">Representation</a>&lt;google::protobuf::Message&gt;</div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;{</div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;  <span class="keyword">using</span> <a class="code" href="structRepresentation.html">Representation&lt;google::protobuf::Message&gt;::Representation</a>;</div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;};</div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    T message;</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    <a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespaceprotobuf_1_1internal.html#a3cfa5c20c57cdc039693ab9c1d417681">parse</a> = <a class="code" href="namespaceprotobuf_1_1internal.html#a3cfa5c20c57cdc039693ab9c1d417681">internal::parse</a>(&amp;message, *<span class="keywordtype">object</span>);</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    <span class="keywordflow">if</span> (parse.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(parse.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    }</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <span class="keywordflow">if</span> (!message.IsInitialized()) {</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Missing required fields: &quot;</span> +</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;                   message.InitializationErrorString());</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    }</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    <span class="keywordflow">return</span> message;</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;  }</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;};</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;<span class="comment">// Partial specialization for RepeatedPtrField&lt;T&gt; to parse a sequence of</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;<span class="comment">// protobuf messages from a JSON::Array by repeatedly invoking Parse&lt;T&gt; to</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;<span class="comment">// facilitate conversions like JSON::Array -&gt; Resources.</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<span class="comment">// NOTE: This struct is used by the public parse&lt;T&gt;() function below. See</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="comment">// comments there for the reason why we opted for this design.</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parse_3_01google_1_1protobuf_1_1RepeatedPtrField_3_01T_01_4_01_4.html">  655</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structprotobuf_1_1internal_1_1Parse.html">Parse</a>&lt;google::protobuf::RepeatedPtrField&lt;T&gt;&gt;</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;{</div>
+<div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="structprotobuf_1_1internal_1_1Parse_3_01google_1_1protobuf_1_1RepeatedPtrField_3_01T_01_4_01_4.html#a92dbcc8b139a55707100a087533b967e">  657</a></span>&#160;  <a class="code" href="classTry.html">Try&lt;google::protobuf::RepeatedPtrField&lt;T&gt;</a>&gt; <a class="code" href="structprotobuf_1_1internal_1_1Parse_3_01google_1_1protobuf_1_1RepeatedPtrField_3_01T_01_4_01_4.html#a92dbcc8b139a55707100a087533b967e">operator()</a>(</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;      <span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value)</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;  {</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    static_assert(std::is_convertible&lt;T*, google::protobuf::Message*&gt;::value,</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;                  <span class="stringliteral">&quot;T must be a protobuf message&quot;</span>);</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    <span class="keyword">const</span> <a class="code" href="structJSON_1_1Array.html">JSON::Array</a>* array = boost::get&lt;JSON::Array&gt;(&amp;value);</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;    <span class="keywordflow">if</span> (array == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">&quot;Expecting a JSON array&quot;</span>);</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    }</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    google::protobuf::RepeatedPtrField&lt;T&gt; collection;</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    collection.Reserve(static_cast&lt;int&gt;(array-&gt;<a class="code" href="structJSON_1_1Array.html#aed41033b7cd6a2c2e7dcc6f0c48a4563">values</a>.size()));</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    <span class="comment">// Parse messages one by one and propagate an error if it happens.</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; elem, array-&gt;<a class="code" href="structJSON_1_1Array.html#aed41033b7cd6a2c2e7dcc6f0c48a4563">values</a>) {</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;      <a class="code" href="classTry.html">Try&lt;T&gt;</a> message = <a class="code" href="structprotobuf_1_1internal_1_1Parse.html">Parse&lt;T&gt;</a>()(elem);</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;      <span class="keywordflow">if</span> (message.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(message.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;      }</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;      collection.Add()-&gt;CopyFrom(message.<a class="code" href="classTry.html#a7be0768038e0628632492edf6cc1515a">get</a>());</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;    }</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    <span class="keywordflow">return</span> collection;</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;  }</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;};</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;} <span class="comment">// namespace internal {</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;<span class="comment">// A dispatch wrapper which parses protobuf messages(s) from a given JSON value.</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;<span class="comment">// We use partial specialization of</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;<span class="comment">//   - internal::Parse&lt;T&gt; for JSON::Object</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;<span class="comment">//   - internal::Parse&lt;google::protobuf::RepeatedPtrField&lt;T&gt;&gt; for JSON::Array</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;<span class="comment">// to determine whether T is a single message or a sequence of messages.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;<span class="comment">// We cannot partially specialize function templates and overloaded function</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;<span class="comment">// approach combined with std::enable_if is not that clean, hence we leverage</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;<span class="comment">// partial specialization of class templates.</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="namespaceprotobuf.html#a9c1229ef45781eadc126cdb70b8ca741">  696</a></span>&#160;<a class="code" href="classTry.html">Try&lt;T&gt;</a> <a class="code" href="namespaceprotobuf.html#a9c1229ef45781eadc126cdb70b8ca741">parse</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Value.html">JSON::Value</a>&amp; value)</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;{</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="structprotobuf_1_1internal_1_1Parse.html">internal::Parse&lt;T&gt;</a>()(value);</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;}</div>
 <div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;<span class="comment">// `json` function for protobuf messages. Refer to `jsonify.hpp` for details.</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;<span class="comment">// TODO(mpark): This currently uses the default value for optional fields</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;<span class="comment">// that are not deprecated, but we may want to revisit this decision.</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="namespaceJSON.html#a6e349ac06c1e604507d62192200a4ad3">  704</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal.html#a3752d85ef726065c6c1b946eef1ba87a">json</a>(<a class="code" href="classJSON_1_1ObjectWriter.html">ObjectWriter</a>* writer, <span class="keyword">const</span> <a class="code" href="structJSON_1_1Protobuf.html">Protobuf</a>&amp; <a class="code" href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">protobuf</a>)</div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;{</div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;  <span class="keyword">using</span> google::protobuf::FieldDescriptor;</div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;</div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;  <span class="keyword">const</span> google::protobuf::Message&amp; message = <a class="code" href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">protobuf</a>;</div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;</div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;  <span class="keyword">const</span> google::protobuf::Descriptor* descriptor = message.GetDescriptor();</div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;  <span class="keyword">const</span> google::protobuf::Reflection* reflection = message.GetReflection();</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;} <span class="comment">// namespace protobuf {</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039ea0ecd11c1d7a287401d148a23bbd7a2f8">JSON</a> {</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;<span class="comment">// The representation of generic protobuf =&gt; JSON,</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="comment">// e.g., `jsonify(JSON::Protobuf(message))`.</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="structJSON_1_1Protobuf.html">  707</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structJSON_1_1Protobuf.html">Protobuf</a> : <a class="code" href="structRepresentation.html">Representation</a>&lt;google::protobuf::Message&gt;</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;{</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;  <span class="keyword">using</span> <a class="code" href="structRepresentation.html">Representation&lt;google::protobuf::Message&gt;::Representation</a>;</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;};</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;</div>
 <div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;  <span class="comment">// We first look through all the possible fields to determine both the set</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;  <span class="comment">// fields __and__ the optional fields with a default that are not set.</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;  <span class="comment">// `Reflection::ListFields()` alone will only include set fields and</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;  <span class="comment">// is therefore insufficient.</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;  <span class="keywordtype">int</span> fieldCount = descriptor-&gt;field_count();</div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;  std::vector&lt;const FieldDescriptor*&gt; fields;</div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;  fields.reserve(fieldCount);</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; fieldCount; ++i) {</div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    <span class="keyword">const</span> FieldDescriptor* field = descriptor-&gt;field(i);<

<TRUNCATED>

[3/3] mesos-site git commit: Updated the website built from mesos SHA: 2f3ceb4.

Posted by gi...@apache.org.
Updated the website built from mesos SHA: 2f3ceb4.


Project: http://git-wip-us.apache.org/repos/asf/mesos-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos-site/commit/ab5626ca
Tree: http://git-wip-us.apache.org/repos/asf/mesos-site/tree/ab5626ca
Diff: http://git-wip-us.apache.org/repos/asf/mesos-site/diff/ab5626ca

Branch: refs/heads/asf-site
Commit: ab5626ca07183e5db035a9a4aa94b7a75c959a8d
Parents: 61f17a3
Author: jenkins <bu...@apache.org>
Authored: Tue Oct 3 01:59:11 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Tue Oct 3 01:59:11 2017 +0000

----------------------------------------------------------------------
 ...2include_2process_2protobuf_8hpp_source.html |    2 +-
 ...t_2include_2stout_2protobuf_8hpp_source.html | 1110 +++++++++---------
 ...ude_2mesos_2state_2protobuf_8hpp_source.html |    2 +-
 content/api/latest/c++/namespaceJSON.html       |   16 +-
 .../latest/c++/protobuf__utils_8hpp_source.html |    2 +-
 .../c++/src_2master_2master_8hpp_source.html    |    2 +-
 .../c++/src_2tests_2mesos_8hpp_source.html      |    2 +-
 7 files changed, 574 insertions(+), 562 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos-site/blob/ab5626ca/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html
index 6bccd24..8e38724 100644
--- a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html
@@ -1183,7 +1183,7 @@
 <div class="ttc" id="namespacegoogle_1_1protobuf_html_aee8eca8614f1e8ce851c94890b57482b"><div class="ttname"><a href="namespacegoogle_1_1protobuf.html#aee8eca8614f1e8ce851c94890b57482b">google::protobuf::convert</a></div><div class="ttdeci">const T &amp; convert(const T &amp;t)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:72</div></div>
 <div class="ttc" id="classReqResProcess_html_aa88a64351fac32c4d142a4119b8fe45e"><div class="ttname"><a href="classReqResProcess.html#aa88a64351fac32c4d142a4119b8fe45e">ReqResProcess::run</a></div><div class="ttdeci">process::Future&lt; Res &gt; run()</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:1043</div></div>
 <div class="ttc" id="structprocess_1_1MessageEvent_html_a3e86a5596721b08bb8a9424367b25ba6"><div class="ttname"><a href="structprocess_1_1MessageEvent.html#a3e86a5596721b08bb8a9424367b25ba6">process::MessageEvent::message</a></div><div class="ttdeci">const Message message</div><div class="ttdef"><b>Definition:</b> event.hpp:127</div></div>
-<div class="ttc" id="namespaceJSON_html_a93c179a1a5bd4164169d47cb1803f2a6"><div class="ttname"><a href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON::protobuf</a></div><div class="ttdeci">Object protobuf(const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:839</div></div>
+<div class="ttc" id="namespaceJSON_html_a93c179a1a5bd4164169d47cb1803f2a6"><div class="ttname"><a href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON::protobuf</a></div><div class="ttdeci">Object protobuf(const google::protobuf::Message &amp;message)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:851</div></div>
 <div class="ttc" id="classprocess_1_1Promise_html_a8aef752d6c90cb11e58e3166b7592ef1"><div class="ttname"><a href="classprocess_1_1Promise.html#a8aef752d6c90cb11e58e3166b7592ef1">process::Promise::future</a></div><div class="ttdeci">Future&lt; T &gt; future() const </div><div class="ttdef"><b>Definition:</b> future.hpp:785</div></div>
 <div class="ttc" id="classProtobufProcess_html_a2a2acb37de2d4c95cab315f13a3e6592"><div class="ttname"><a href="classProtobufProcess.html#a2a2acb37de2d4c95cab315f13a3e6592">ProtobufProcess::install</a></div><div class="ttdeci">void install(void(T::*method)(const process::UPID &amp;, P1C, P2C, P3C, P4C, P5C, P6C, P7C), P1(M::*p1)() const, P2(M::*p2)() const, P3(M::*p3)() const, P4(M::*p4)() const, P5(M::*p5)() const, P6(M::*p6)() const, P7(M::*p7)() const)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:286</div></div>
 <div class="ttc" id="classProtobufProcess_html_a4ed1676548817c51eb785b153f247cb1"><div class="ttname"><a href="classProtobufProcess.html#a4ed1676548817c51eb785b153f247cb1">ProtobufProcess::install</a></div><div class="ttdeci">void install(void(T::*method)(const process::UPID &amp;, P1C, P2C, P3C), P1(M::*p1)() const, P2(M::*p2)() const, P3(M::*p3)() const)</div><div class="ttdef"><b>Definition:</b> protobuf.hpp:193</div></div>