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/11/20 04:09:39 UTC

[29/30] mesos-site git commit: Updated the website built from mesos SHA: 477e2f5.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/90f51d8b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html
index 282f7fa..8d84ae1 100644
--- a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html
@@ -1017,165 +1017,267 @@
 <div class="line"><a name="l01018"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1http.html#a43075237950bf4d118c499a22b886798"> 1018</a></span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Nothing&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#a43075237950bf4d118c499a22b886798">serve</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&amp; s, F&amp;&amp; <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)</div>
 <div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;{</div>
 <div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess_1_1http_1_1internal.html#ac1d6c9a9788de075b4c896603b6553f2">internal::serve</a>(</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;      s, std::function&lt;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&amp;)&gt;(std::forward&lt;F&gt;(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)));</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;}</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;      s,</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;      std::function&lt;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&amp;)&gt;(std::forward&lt;F&gt;(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)));</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;}</div>
 <div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="comment">// TODO(benh): Eventually we probably want something like a `Server`</span></div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="comment">// that will handle accepting new sockets and then calling `serve`. It</span></div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="comment">// would also be valuable to introduce shutdown semantics that are</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="comment">// better than the current discard semantics on `serve`. For example:</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="comment">// class Server</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="comment">// {</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="comment">//   struct ShutdownOptions</span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="comment">//   {</span></div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="comment">//     // During the grace period, no new connections will</span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="comment">//     // be accepted. Existing connections will be closed</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="comment">//     // when currently received requests have been handled.</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="comment">//     // The server will shut down reads on each connection</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="comment">//     // to prevent new requests from arriving.</span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="comment">//     Duration gracePeriod;</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="comment">//   };</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="comment">//   // Shuts down the server.</span></div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="comment">//   Future&lt;Nothing&gt; shutdown(Sever::ShutdownOptions options);</span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="comment">// };</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;<span class="comment">// Create a http Request from the specified parameters.</span></div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;Request <a class="code" href="namespaceprocess_1_1http.html#af2b66a0484ac2a6448270526c854251c">createRequest</a>(</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;  <span class="keyword">const</span> std::string&amp; method,</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;  <span class="keywordtype">bool</span> enableSSL = <span class="keyword">false</span>,</div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;Request <a class="code" href="namespaceprocess_1_1http.html#af2b66a0484ac2a6448270526c854251c">createRequest</a>(</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    <span class="keyword">const</span> URL&amp; url,</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    <span class="keyword">const</span> std::string&amp; method,</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>(</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    <span class="keyword">const</span> Request&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;    <span class="keywordtype">bool</span> streamedResponse = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="comment">// TODO(Yongqiao Wang): Refactor other functions</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="comment">// (such as post/get/requestDelete) to use the &#39;request&#39; function.</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="comment">// TODO(bmahler): Support discarding the future responses;</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;<span class="comment">// discarding should disconnect from the server.</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="comment">// TODO(joerg84): Make names consistent (see Mesos-3256).</span></div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="comment">// Asynchronously sends an HTTP GET request to the specified URL</span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="comment">// and returns the HTTP response of type &#39;BODY&#39; once the entire</span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="comment">// response is received.</span></div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <span class="keyword">get</span>(</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;    <span class="keyword">const</span> URL&amp; url,</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;</div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;</div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="comment">// Asynchronously sends an HTTP GET request to the process with the</span></div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="comment">// given UPID and returns the HTTP response of type &#39;BODY&#39; once the</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;<span class="comment">// entire response is received.</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <span class="keyword">get</span>(</div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; query = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="comment">// Asynchronously sends an HTTP POST request to the specified URL</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="comment">// and returns the HTTP response of type &#39;BODY&#39; once the entire</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="comment">// response is received.</span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#ae18e508ddf8cd65d7778320fa57550f3">post</a>(</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <span class="keyword">const</span> URL&amp; url,</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;</div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="comment">// Asynchronously sends an HTTP POST request to the process with the</span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="comment">// given UPID and returns the HTTP response of type &#39;BODY&#39; once the</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="comment">// entire response is received.</span></div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#ae18e508ddf8cd65d7778320fa57550f3">post</a>(</div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#a1443ad581d0388a87013f0284906c2b3">requestDelete</a>(</div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;    <span class="keyword">const</span> URL&amp; url,</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#a1443ad581d0388a87013f0284906c2b3">requestDelete</a>(</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="comment">// Forward declaration.</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="keyword">class </span>ServerProcess;</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Server.html"> 1030</a></span>&#160;<span class="keyword">class </span><a class="code" href="classprocess_1_1http_1_1Server.html">Server</a></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;{</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;  <span class="comment">// Options for creating a server.</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;  <span class="comment">//</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;  <span class="comment">// NOTE: until GCC 5.0 default member initializers prevented the</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;  <span class="comment">// class from being an aggregate which prevented you from being able</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;  <span class="comment">// to use aggregate initialization, thus we introduce and use</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;  <span class="comment">// `DEFAULT_CREATE_OPTIONS` for the default parameter of `create`.</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html"> 1039</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html">CreateOptions</a></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;  {</div>
+<div class="line"><a name="l01041"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html#a4cb41422a65c356139fd2c422e4e7858"> 1041</a></span>&#160;    <a class="code" href="namespaceprocess_1_1http.html#acc0a9c62d4bef93195e93af072f0cda5">Scheme</a> <a class="code" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html#a4cb41422a65c356139fd2c422e4e7858">scheme</a>;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html#a5a8f51c254c40e780727a0a382349e7e"> 1042</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html#a5a8f51c254c40e780727a0a382349e7e">backlog</a>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;  };</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Server.html#a016dc7d028b22cdabe251f4cf7cb1d66"> 1045</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html">CreateOptions</a> <a class="code" href="classprocess_1_1http_1_1Server.html#a016dc7d028b22cdabe251f4cf7cb1d66">DEFAULT_CREATE_OPTIONS</a>()</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;  {</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    <span class="keywordflow">return</span> {</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;      <span class="comment">/* .scheme = */</span> <a class="code" href="namespaceprocess_1_1http.html#acc0a9c62d4bef93195e93af072f0cda5a293c9ea246ff9985dc6f62a650f78986">Scheme::HTTP</a>,</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;      <span class="comment">/* .backlog = */</span> 16384,</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    };</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;  };</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;  <span class="comment">// Options for stopping a server.</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;  <span class="comment">//</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;  <span class="comment">// NOTE: see note above as to why we have `DEFAULT_STOP_OPTIONS`.</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Server_1_1StopOptions.html"> 1056</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structprocess_1_1http_1_1Server_1_1StopOptions.html">StopOptions</a></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;  {</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    <span class="comment">// During the grace period:</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    <span class="comment">//   * No new sockets will be accepted (but on OS X they&#39;ll still queue).</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    <span class="comment">//   * Existing sockets will be shut down for reads to prevent new</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    <span class="comment">//     requests from arriving.</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;    <span class="comment">//   * Existing sockets will be shut down after already received</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    <span class="comment">//     requests have their responses sent.</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    <span class="comment">// After the grace period connections will be forcibly shut down.</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Server_1_1StopOptions.html#adb788740bbc751f60b4bd30b92b04197"> 1065</a></span>&#160;    <a class="code" href="classDuration.html">Duration</a> <a class="code" href="structprocess_1_1http_1_1Server_1_1StopOptions.html#adb788740bbc751f60b4bd30b92b04197">grace_period</a>;</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;  };</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div>
+<div class="line"><a name="l01068"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Server.html#ac33bf972feb4a0dcaa97364abc4980ac"> 1068</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="structprocess_1_1http_1_1Server_1_1StopOptions.html">StopOptions</a> <a class="code" href="classprocess_1_1http_1_1Server.html#ac33bf972feb4a0dcaa97364abc4980ac">DEFAULT_STOP_OPTIONS</a>()</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;  {</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    <span class="keywordflow">return</span> {</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;      <span class="comment">/* .grace_period = */</span> <a class="code" href="classSeconds.html">Seconds</a>(0),</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    };</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;  };</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;  <span class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;Server&gt;</a> <a class="code" href="classprocess_1_1http_1_1Server.html#aad73443f021cf049eb9e0a0b7f845346">create</a>(</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;      <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a> socket,</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;      std::function&lt;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a>(</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&amp; socket,</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;          <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&amp;)&gt;&amp;&amp; <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;      <span class="keyword">const</span> CreateOptions&amp; options = <a class="code" href="classprocess_1_1http_1_1Server.html#a016dc7d028b22cdabe251f4cf7cb1d66">DEFAULT_CREATE_OPTIONS</a>());</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> F&gt;</div>
+<div class="line"><a name="l01083"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Server.html#a911155b94d612d120d089bfac1ba5db6"> 1083</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;Server&gt;</a> <a class="code" href="classprocess_1_1http_1_1Server.html#a911155b94d612d120d089bfac1ba5db6">create</a>(</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;      <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a> socket,</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;      F&amp;&amp; <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;      <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html">CreateOptions</a>&amp; options = <a class="code" href="classprocess_1_1http_1_1Server.html#a016dc7d028b22cdabe251f4cf7cb1d66">DEFAULT_CREATE_OPTIONS</a>())</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;  {</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1http_1_1Server.html#aad73443f021cf049eb9e0a0b7f845346">create</a>(</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;        std::move(socket),</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;        std::function&lt;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a>(</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;            <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&amp;,</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;            <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&amp;)&gt;(std::forward&lt;F&gt;(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)),</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;        options);</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;  }</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;  <span class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;Server&gt;</a> <a class="code" href="classprocess_1_1http_1_1Server.html#aad73443f021cf049eb9e0a0b7f845346">create</a>(</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1Address.html">network::Address</a>&amp; <a class="code" href="classprocess_1_1http_1_1Server.html#a367932ae4d3a677925a00bcd43230067">address</a>,</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;      std::function&lt;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a>(</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&amp;,</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;          <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&amp;)&gt;&amp;&amp; <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;      <span class="keyword">const</span> CreateOptions&amp; options = <a class="code" href="classprocess_1_1http_1_1Server.html#a016dc7d028b22cdabe251f4cf7cb1d66">DEFAULT_CREATE_OPTIONS</a>());</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> F&gt;</div>
+<div class="line"><a name="l01104"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Server.html#ad5bd52941653a8aeef6b416df58abf38"> 1104</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;Server&gt;</a> <a class="code" href="classprocess_1_1http_1_1Server.html#ad5bd52941653a8aeef6b416df58abf38">create</a>(</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;      <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1Address.html">network::Address</a>&amp; address,</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;      F&amp;&amp; <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;      <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html">CreateOptions</a>&amp; options = <a class="code" href="classprocess_1_1http_1_1Server.html#a016dc7d028b22cdabe251f4cf7cb1d66">DEFAULT_CREATE_OPTIONS</a>())</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;  {</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1http_1_1Server.html#aad73443f021cf049eb9e0a0b7f845346">create</a>(</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;        address,</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;        std::function&lt;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a>(</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;            <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&amp;,</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;            <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&amp;)&gt;(std::forward&lt;F&gt;(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)),</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;        options);</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;  }</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;  <span class="comment">// Movable but not copyable, not assignable.</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;  <a class="code" href="classprocess_1_1http_1_1Server.html#a2fbeb0b32e953ae8851c20c226c2bdba">Server</a>(<a class="code" href="classprocess_1_1http_1_1Server.html">Server</a>&amp;&amp; that) = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;  <a class="code" href="classprocess_1_1http_1_1Server.html#a2fbeb0b32e953ae8851c20c226c2bdba">Server</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Server.html">Server</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;  <a class="code" href="classprocess_1_1http_1_1Server.html">Server</a>&amp; <a class="code" href="classprocess_1_1http_1_1Server.html#a62f8af8423a341b3604ffae507a835ac">operator=</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Server.html">Server</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;  <a class="code" href="classprocess_1_1http_1_1Server.html#a6ba051b5545d556dc5886163cb80abf3">~Server</a>();</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;  <span class="comment">// Runs the server, returns nothing after the server has been</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;  <span class="comment">// stopped or a failure if one occured.</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;  <a class="code" href="classprocess_1_1Future.html">Future&lt;Nothing&gt;</a> <a class="code" href="classprocess_1_1http_1_1Server.html#a0667f67908512b63a7f093800f897da1">run</a>();</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;  <span class="comment">// Returns after the server has been stopped and all existing</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;  <span class="comment">// connections have been closed.</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;  <a class="code" href="classprocess_1_1Future.html">Future&lt;Nothing&gt;</a> <a class="code" href="classprocess_1_1http_1_1Server.html#acc7de6562fb0670327e6d2a4e9e6c92c">stop</a>(<span class="keyword">const</span> StopOptions&amp; options = <a class="code" href="classprocess_1_1http_1_1Server.html#ac33bf972feb4a0dcaa97364abc4980ac">DEFAULT_STOP_OPTIONS</a>());</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;  <span class="comment">// Returns the bound address of the server.</span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;  <a class="code" href="classTry.html">Try&lt;network::Address&gt;</a> <a class="code" href="classprocess_1_1http_1_1Server.html#a367932ae4d3a677925a00bcd43230067">address</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;  <a class="code" href="classprocess_1_1http_1_1Server.html#a2fbeb0b32e953ae8851c20c226c2bdba">Server</a>(</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;      <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&amp;&amp; socket,</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;      std::function&lt;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a>(</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;          <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&amp;,</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;          <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&amp;)&gt;&amp;&amp; <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>);</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;  <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a> socket;</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;  <a class="code" href="classprocess_1_1Owned.html">Owned&lt;ServerProcess&gt;</a> process;</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;};</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment">// Create a http Request from the specified parameters.</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;Request <a class="code" href="namespaceprocess_1_1http.html#af2b66a0484ac2a6448270526c854251c">createRequest</a>(</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;  <span class="keyword">const</span> std::string&amp; method,</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;  <span class="keywordtype">bool</span> enableSSL = <span class="keyword">false</span>,</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;  <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>());</div>
 <div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div>
 <div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;</div>
-<div class="line"><a name="l01158"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1http_1_1streaming.html"> 1158</a></span>&#160;<span class="keyword">namespace </span>streaming {</div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;</div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;<span class="comment">// Asynchronously sends an HTTP GET request to the specified URL</span></div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="comment">// and returns the HTTP response of type &#39;PIPE&#39; once the response</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="comment">// headers are received. The caller must read the response body</span></div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="comment">// from the Pipe::Reader.</span></div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <span class="keyword">get</span>(</div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>&amp; url,</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="comment">// Asynchronously sends an HTTP GET request to the process with the</span></div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="comment">// given UPID and returns the HTTP response of type &#39;PIPE&#39; once the</span></div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="comment">// response headers are received. The caller must read the response</span></div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="comment">// body from the Pipe::Reader.</span></div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <span class="keyword">get</span>(</div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; query = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="comment">// Asynchronously sends an HTTP POST request to the specified URL</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="comment">// and returns the HTTP response of type &#39;PIPE&#39; once the response</span></div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="comment">// headers are received. The caller must read the response body</span></div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment">// from the Pipe::Reader.</span></div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http_1_1streaming.html#ae8a18c7263d4aefb7b1973c12590c688">post</a>(</div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>&amp; url,</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="comment">// Asynchronously sends an HTTP POST request to the process with the</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;<span class="comment">// given UPID and returns the HTTP response of type &#39;PIPE&#39; once the</span></div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;<span class="comment">// response headers are received. The caller must read the response</span></div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="comment">// body from the Pipe::Reader.</span></div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http_1_1streaming.html#ae8a18c7263d4aefb7b1973c12590c688">post</a>(</div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;</div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;} <span class="comment">// namespace streaming {</span></div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;</div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;} <span class="comment">// namespace http {</span></div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;} <span class="comment">// namespace process {</span></div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="preprocessor">#endif // __PROCESS_HTTP_HPP__</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;Request <a class="code" href="namespaceprocess_1_1http.html#af2b66a0484ac2a6448270526c854251c">createRequest</a>(</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    <span class="keyword">const</span> URL&amp; url,</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    <span class="keyword">const</span> std::string&amp; method,</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>(</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;    <span class="keyword">const</span> Request&amp; <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    <span class="keywordtype">bool</span> streamedResponse = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="comment">// TODO(Yongqiao Wang): Refactor other functions</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="comment">// (such as post/get/requestDelete) to use the &#39;request&#39; function.</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="comment">// TODO(bmahler): Support discarding the future responses;</span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment">// discarding should disconnect from the server.</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<span class="comment">// TODO(joerg84): Make names consistent (see Mesos-3256).</span></div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;<span class="comment">// Asynchronously sends an HTTP GET request to the specified URL</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<span class="comment">// and returns the HTTP response of type &#39;BODY&#39; once the entire</span></div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="comment">// response is received.</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <span class="keyword">get</span>(</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;    <span class="keyword">const</span> URL&amp; url,</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;<span class="comment">// Asynchronously sends an HTTP GET request to the process with the</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;<span class="comment">// given UPID and returns the HTTP response of type &#39;BODY&#39; once the</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;<span class="comment">// entire response is received.</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <span class="keyword">get</span>(</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; query = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;<span class="comment">// Asynchronously sends an HTTP POST request to the specified URL</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="comment">// and returns the HTTP response of type &#39;BODY&#39; once the entire</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;<span class="comment">// response is received.</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#ae18e508ddf8cd65d7778320fa57550f3">post</a>(</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;    <span class="keyword">const</span> URL&amp; url,</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="comment">// Asynchronously sends an HTTP POST request to the process with the</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;<span class="comment">// given UPID and returns the HTTP response of type &#39;BODY&#39; once the</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;<span class="comment">// entire response is received.</span></div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#ae18e508ddf8cd65d7778320fa57550f3">post</a>(</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#a1443ad581d0388a87013f0284906c2b3">requestDelete</a>(</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;    <span class="keyword">const</span> URL&amp; url,</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http.html#a1443ad581d0388a87013f0284906c2b3">requestDelete</a>(</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;</div>
+<div class="line"><a name="l01258"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1http_1_1streaming.html"> 1258</a></span>&#160;<span class="keyword">namespace </span>streaming {</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;<span class="comment">// Asynchronously sends an HTTP GET request to the specified URL</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;<span class="comment">// and returns the HTTP response of type &#39;PIPE&#39; once the response</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;<span class="comment">// headers are received. The caller must read the response body</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;<span class="comment">// from the Pipe::Reader.</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <span class="keyword">get</span>(</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>&amp; url,</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;<span class="comment">// Asynchronously sends an HTTP GET request to the process with the</span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;<span class="comment">// given UPID and returns the HTTP response of type &#39;PIPE&#39; once the</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;<span class="comment">// response headers are received. The caller must read the response</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;<span class="comment">// body from the Pipe::Reader.</span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <span class="keyword">get</span>(</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; query = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<span class="comment">// Asynchronously sends an HTTP POST request to the specified URL</span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;<span class="comment">// and returns the HTTP response of type &#39;PIPE&#39; once the response</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;<span class="comment">// headers are received. The caller must read the response body</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;<span class="comment">// from the Pipe::Reader.</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http_1_1streaming.html#ae8a18c7263d4aefb7b1973c12590c688">post</a>(</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>&amp; url,</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;<span class="comment">// Asynchronously sends an HTTP POST request to the process with the</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;<span class="comment">// given UPID and returns the HTTP response of type &#39;PIPE&#39; once the</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;<span class="comment">// response headers are received. The caller must read the response</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="comment">// body from the Pipe::Reader.</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;<a class="code" href="classprocess_1_1Future.html">Future&lt;Response&gt;</a> <a class="code" href="namespaceprocess_1_1http_1_1streaming.html#ae8a18c7263d4aefb7b1973c12590c688">post</a>(</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;    <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&amp; upid,</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;Headers&gt;</a>&amp; headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; contentType = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;    <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;} <span class="comment">// namespace streaming {</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;} <span class="comment">// namespace http {</span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;} <span class="comment">// namespace process {</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;<span class="preprocessor">#endif // __PROCESS_HTTP_HPP__</span></div>
+<div class="ttc" id="classprocess_1_1http_1_1Server_html_ac33bf972feb4a0dcaa97364abc4980ac"><div class="ttname"><a href="classprocess_1_1http_1_1Server.html#ac33bf972feb4a0dcaa97364abc4980ac">process::http::Server::DEFAULT_STOP_OPTIONS</a></div><div class="ttdeci">static StopOptions DEFAULT_STOP_OPTIONS()</div><div class="ttdef"><b>Definition:</b> http.hpp:1068</div></div>
+<div class="ttc" id="classprocess_1_1http_1_1Server_html_acc7de6562fb0670327e6d2a4e9e6c92c"><div class="ttname"><a href="classprocess_1_1http_1_1Server.html#acc7de6562fb0670327e6d2a4e9e6c92c">process::http::Server::stop</a></div><div class="ttdeci">Future&lt; Nothing &gt; stop(const StopOptions &amp;options=DEFAULT_STOP_OPTIONS())</div></div>
 <div class="ttc" id="namespaceprocess_1_1http_1_1path_html_a2410072cba7b95c5d555a0747ef33b50"><div class="ttname"><a href="namespaceprocess_1_1http_1_1path.html#a2410072cba7b95c5d555a0747ef33b50">process::http::path::parse</a></div><div class="ttdeci">Try&lt; hashmap&lt; std::string, std::string &gt; &gt; parse(const std::string &amp;pattern, const std::string &amp;path)</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1NotImplemented_html_a6ef0e57cfbd6d82ca46977181b1dc19c"><div class="ttname"><a href="structprocess_1_1http_1_1NotImplemented.html#a6ef0e57cfbd6d82ca46977181b1dc19c">process::http::NotImplemented::NotImplemented</a></div><div class="ttdeci">NotImplemented(const std::string &amp;body)</div><div class="ttdef"><b>Definition:</b> http.hpp:834</div></div>
 <div class="ttc" id="classprocess_1_1http_1_1Pipe_1_1Writer_html_a1d21b4591e3eae83215f95a34855b465"><div class="ttname"><a href="classprocess_1_1http_1_1Pipe_1_1Writer.html#a1d21b4591e3eae83215f95a34855b465">process::http::Pipe::Writer::operator!=</a></div><div class="ttdeci">bool operator!=(const Writer &amp;other) const </div><div class="ttdef"><b>Definition:</b> http.hpp:365</div></div>
@@ -1193,6 +1295,7 @@
 <div class="ttc" id="structprocess_1_1http_1_1Status_html_a84baf6a6f631e460bb85bea1d546bd97"><div class="ttname"><a href="structprocess_1_1http_1_1Status.html#a84baf6a6f631e460bb85bea1d546bd97">process::http::Status::GONE</a></div><div class="ttdeci">static const uint16_t GONE</div><div class="ttdef"><b>Definition:</b> http.hpp:242</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1Status_html_addffbea97c092bf92955b7f513208ceb"><div class="ttname"><a href="structprocess_1_1http_1_1Status.html#addffbea97c092bf92955b7f513208ceb">process::http::Status::UNSUPPORTED_MEDIA_TYPE</a></div><div class="ttdeci">static const uint16_t UNSUPPORTED_MEDIA_TYPE</div><div class="ttdef"><b>Definition:</b> http.hpp:247</div></div>
 <div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:35</div></div>
+<div class="ttc" id="structprocess_1_1http_1_1Server_1_1CreateOptions_html"><div class="ttname"><a href="structprocess_1_1http_1_1Server_1_1CreateOptions.html">process::http::Server::CreateOptions</a></div><div class="ttdef"><b>Definition:</b> http.hpp:1039</div></div>
 <div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:27</div></div>
 <div class="ttc" id="namespaceprocess_1_1http_html_acc0a9c62d4bef93195e93af072f0cda5a293c9ea246ff9985dc6f62a650f78986"><div class="ttname"><a href="namespaceprocess_1_1http.html#acc0a9c62d4bef93195e93af072f0cda5a293c9ea246ff9985dc6f62a650f78986">process::http::Scheme::HTTP</a></div></div>
 <div class="ttc" id="classprocess_1_1http_1_1Pipe_html"><div class="ttname"><a href="classprocess_1_1http_1_1Pipe.html">process::http::Pipe</a></div><div class="ttdef"><b>Definition:</b> http.hpp:296</div></div>
@@ -1209,12 +1312,14 @@
 <div class="ttc" id="address_8hpp_html"><div class="ttname"><a href="address_8hpp.html">address.hpp</a></div></div>
 <div class="ttc" id="structprocess_1_1http_1_1Request_html_ab73883ea45426022ec851b2069f8ed21"><div class="ttname"><a href="structprocess_1_1http_1_1Request.html#ab73883ea45426022ec851b2069f8ed21">process::http::Request::acceptsEncoding</a></div><div class="ttdeci">bool acceptsEncoding(const std::string &amp;encoding) const </div><div class="ttdoc">Returns whether the encoding is considered acceptable in the response. </div></div>
 <div class="ttc" id="namespacestrings_html_ac315a6174f56cba0d8295f84da265416"><div class="ttname"><a href="namespacestrings.html#ac315a6174f56cba0d8295f84da265416">strings::join</a></div><div class="ttdeci">std::stringstream &amp; join(std::stringstream &amp;stream, const std::string &amp;separator, T &amp;&amp;...args)</div><div class="ttdef"><b>Definition:</b> strings.hpp:306</div></div>
+<div class="ttc" id="classprocess_1_1http_1_1Server_html_a016dc7d028b22cdabe251f4cf7cb1d66"><div class="ttname"><a href="classprocess_1_1http_1_1Server.html#a016dc7d028b22cdabe251f4cf7cb1d66">process::http::Server::DEFAULT_CREATE_OPTIONS</a></div><div class="ttdeci">static CreateOptions DEFAULT_CREATE_OPTIONS()</div><div class="ttdef"><b>Definition:</b> http.hpp:1045</div></div>
 <div class="ttc" id="classprocess_1_1http_1_1Connection_html_a58b9b75cf3b6df4215849ddb27d66ed2"><div class="ttname"><a href="classprocess_1_1http_1_1Connection.html#a58b9b75cf3b6df4215849ddb27d66ed2">process::http::Connection::Connection</a></div><div class="ttdeci">Connection()=delete</div></div>
 <div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> try.hpp:34</div></div>
 <div class="ttc" id="classprocess_1_1http_1_1header_1_1WWWAuthenticate_html"><div class="ttname"><a href="classprocess_1_1http_1_1header_1_1WWWAuthenticate.html">process::http::header::WWWAuthenticate</a></div><div class="ttdef"><b>Definition:</b> http.hpp:424</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1Response_html_a8fcbd2073ace160af24a9ee531cb4378"><div class="ttname"><a href="structprocess_1_1http_1_1Response.html#a8fcbd2073ace160af24a9ee531cb4378">process::http::Response::status</a></div><div class="ttdeci">std::string status</div><div class="ttdef"><b>Definition:</b> http.hpp:621</div></div>
 <div class="ttc" id="3rdparty_2stout_2include_2stout_2ip_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2ip_8hpp.html">ip.hpp</a></div></div>
 <div class="ttc" id="structprocess_1_1http_1_1NotAcceptable_html_a7aa1994f2bf2049346177a29ec75b567"><div class="ttname"><a href="structprocess_1_1http_1_1NotAcceptable.html#a7aa1994f2bf2049346177a29ec75b567">process::http::NotAcceptable::NotAcceptable</a></div><div class="ttdeci">NotAcceptable()</div><div class="ttdef"><b>Definition:</b> http.hpp:787</div></div>
+<div class="ttc" id="classprocess_1_1http_1_1Server_html_a6ba051b5545d556dc5886163cb80abf3"><div class="ttname"><a href="classprocess_1_1http_1_1Server.html#a6ba051b5545d556dc5886163cb80abf3">process::http::Server::~Server</a></div><div class="ttdeci">~Server()</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1Request_html_a4e49e02732d986eb32f979156e0d389a"><div class="ttname"><a href="structprocess_1_1http_1_1Request.html#a4e49e02732d986eb32f979156e0d389a">process::http::Request::type</a></div><div class="ttdeci">enum process::http::Request::@3 type</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1Status_html_ac65b51669b169159644d53b15932fd98"><div class="ttname"><a href="structprocess_1_1http_1_1Status.html#ac65b51669b169159644d53b15932fd98">process::http::Status::PARTIAL_CONTENT</a></div><div class="ttdeci">static const uint16_t PARTIAL_CONTENT</div><div class="ttdef"><b>Definition:</b> http.hpp:224</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1Response_html_a6dd5881e0450540a106e37257434eaada8d713d3c6326b2c6f5730c5f46f3e3f0"><div class="ttname"><a href="structprocess_1_1http_1_1Response.html#a6dd5881e0450540a106e37257434eaada8d713d3c6326b2c6f5730c5f46f3e3f0">process::http::Response::PIPE</a></div><div class="ttdef"><b>Definition:</b> http.hpp:651</div></div>
@@ -1225,6 +1330,7 @@
 <div class="ttc" id="structprocess_1_1http_1_1Response_html_ad6530fddd03380dbb3b23b17523cb242"><div class="ttname"><a href="structprocess_1_1http_1_1Response.html#ad6530fddd03380dbb3b23b17523cb242">process::http::Response::code</a></div><div class="ttdeci">uint16_t code</div><div class="ttdef"><b>Definition:</b> http.hpp:658</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1CaseInsensitiveHash_html"><div class="ttname"><a href="structprocess_1_1http_1_1CaseInsensitiveHash.html">process::http::CaseInsensitiveHash</a></div><div class="ttdef"><b>Definition:</b> http.hpp:184</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1UnsupportedMediaType_html_a7884daaa8874b73fa2fa536f7c8f46d2"><div class="ttname"><a href="structprocess_1_1http_1_1UnsupportedMediaType.html#a7884daaa8874b73fa2fa536f7c8f46d2">process::http::UnsupportedMediaType::UnsupportedMediaType</a></div><div class="ttdeci">UnsupportedMediaType(const std::string &amp;body)</div><div class="ttdef"><b>Definition:</b> http.hpp:816</div></div>
+<div class="ttc" id="classprocess_1_1http_1_1Server_html_aad73443f021cf049eb9e0a0b7f845346"><div class="ttname"><a href="classprocess_1_1http_1_1Server.html#aad73443f021cf049eb9e0a0b7f845346">process::http::Server::create</a></div><div class="ttdeci">static Try&lt; Server &gt; create(network::Socket socket, std::function&lt; Future&lt; Response &gt;(const network::Socket &amp;socket, const Request &amp;)&gt; &amp;&amp;f, const CreateOptions &amp;options=DEFAULT_CREATE_OPTIONS())</div></div>
 <div class="ttc" id="classprocess_1_1http_1_1Headers_html_ace314043b5f44f854097d321246a26c0"><div class="ttname"><a href="classprocess_1_1http_1_1Headers.html#ace314043b5f44f854097d321246a26c0">process::http::Headers::get</a></div><div class="ttdeci">Result&lt; T &gt; get() const </div><div class="ttdef"><b>Definition:</b> http.hpp:487</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1Status_html"><div class="ttname"><a href="structprocess_1_1http_1_1Status.html">process::http::Status</a></div><div class="ttdef"><b>Definition:</b> http.hpp:214</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1OK_html_af0ee20be64fc087545d5e44d0d59fc2f"><div class="ttname"><a href="structprocess_1_1http_1_1OK.html#af0ee20be64fc087545d5e44d0d59fc2f">process::http::OK::OK</a></div><div class="ttdeci">OK()</div><div class="ttdef"><b>Definition:</b> http.hpp:664</div></div>
@@ -1236,6 +1342,7 @@
 <div class="ttc" id="structprocess_1_1http_1_1CaseInsensitiveEqual_html"><div class="ttname"><a href="structprocess_1_1http_1_1CaseInsensitiveEqual.html">process::http::CaseInsensitiveEqual</a></div><div class="ttdef"><b>Definition:</b> http.hpp:197</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1URL_html_a800e017253a838fc29a2c8d30e49564e"><div class="ttname"><a href="structprocess_1_1http_1_1URL.html#a800e017253a838fc29a2c8d30e49564e">process::http::URL::domain</a></div><div class="ttdeci">Option&lt; std::string &gt; domain</div><div class="ttdef"><b>Definition:</b> http.hpp:172</div></div>
 <div class="ttc" id="structprocess_1_1http_1_1InternalServerError_html_a016283ac8d01260ad0cd135ee402d7f6"><div class="ttname"><a href="structprocess_1_1http_1_1InternalServerError.html#a016283ac8d01260ad0cd135ee402d7f6">process::http::InternalServerError::InternalServerError</a></div><div class="ttdeci">InternalServerError()</div><div class="ttdef"><b>Definition:</b> http.hpp:823</div></div>
+<div class="ttc" id="classprocess_1_1http_1_1Server_html"><div class="ttname"><a href="classprocess_1_1http_1_1Server.html">

<TRUNCATED>