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> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></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>& s, F&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)</div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> {</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <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>  s, std::function<<a class="code" href="classprocess_1_1Future.html">Future<Response></a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&)>(std::forward<F>(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)));</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> }</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  s,</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  std::function<<a class="code" href="classprocess_1_1Future.html">Future<Response></a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&)>(std::forward<F>(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)));</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> }</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> </div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <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> <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> <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> <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> <span class="comment">//</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment">// class Server</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment">// {</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment">// struct ShutdownOptions</span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">// {</span></div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <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> <span class="comment">// // be accepted. Existing connections will be closed</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment">// // when currently received requests have been handled.</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <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> <span class="comment">// // to prevent new requests from arriving.</span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">// Duration gracePeriod;</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment">// };</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment">//</span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">// // Shuts down the server.</span></div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">// Future<Nothing> shutdown(Sever::ShutdownOptions options);</span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">// };</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> </div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <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> 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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="keyword">const</span> std::string& method,</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordtype">bool</span> enableSSL = <span class="keyword">false</span>,</div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> </div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> </div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> 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>  <span class="keyword">const</span> URL& url,</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <span class="keyword">const</span> std::string& method,</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> </div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> Request& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keywordtype">bool</span> streamedResponse = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> </div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">// TODO(Yongqiao Wang): Refactor other functions</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment">// (such as post/get/requestDelete) to use the 'request' function.</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">// TODO(bmahler): Support discarding the future responses;</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment">// discarding should disconnect from the server.</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> </div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <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> </div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <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> <span class="comment">// and returns the HTTP response of type 'BODY' once the entire</span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">// response is received.</span></div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></a> <span class="keyword">get</span>(</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  <span class="keyword">const</span> URL& url,</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> </div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <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> <span class="comment">// given UPID and returns the HTTP response of type 'BODY' once the</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">// entire response is received.</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></a> <span class="keyword">get</span>(</div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& query = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> </div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> </div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <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> <span class="comment">// and returns the HTTP response of type 'BODY' once the entire</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment">// response is received.</span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> URL& url,</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> </div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> </div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <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> <span class="comment">// given UPID and returns the HTTP response of type 'BODY' once the</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment">// entire response is received.</span></div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> </div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> </div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> URL& url,</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> </div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> </div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> </div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment">// Forward declaration.</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="keyword">class </span>ServerProcess;</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> </div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> </div>
+<div class="line"><a name="l01030"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Server.html"> 1030</a></span> <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> {</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="comment">// Options for creating a server.</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <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>  <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>  <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>  <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>  <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>  {</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>  <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>  <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>  };</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> </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>  <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>  {</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keywordflow">return</span> {</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <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>  <span class="comment">/* .backlog = */</span> 16384,</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  };</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  };</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> </div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="comment">// Options for stopping a server.</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <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>  <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>  {</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="comment">// During the grace period:</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="comment">// * No new sockets will be accepted (but on OS X they'll still queue).</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <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>  <span class="comment">// requests from arriving.</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <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>  <span class="comment">// requests have their responses sent.</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  <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>  <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>  };</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </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>  <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>  {</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <span class="keywordflow">return</span> {</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <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>  };</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  };</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> </div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Server></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>  <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>  std::function<<a class="code" href="classprocess_1_1Future.html">Future<Response></a>(</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>& socket,</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&)>&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="keyword">const</span> CreateOptions& 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> </div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> F></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>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Server></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>  <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>  F&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html">CreateOptions</a>& 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>  {</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <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>  std::move(socket),</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  std::function<<a class="code" href="classprocess_1_1Future.html">Future<Response></a>(</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&,</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&)>(std::forward<F>(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)),</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  options);</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  }</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> </div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Server></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>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1Address.html">network::Address</a>& <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>  std::function<<a class="code" href="classprocess_1_1Future.html">Future<Response></a>(</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&,</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&)>&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <span class="keyword">const</span> CreateOptions& 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> </div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> F></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>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Server></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>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1Address.html">network::Address</a>& address,</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  F&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>,</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Server_1_1CreateOptions.html">CreateOptions</a>& 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>  {</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  <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>  address,</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  std::function<<a class="code" href="classprocess_1_1Future.html">Future<Response></a>(</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&,</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&)>(std::forward<F>(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)),</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  options);</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  }</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> </div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="comment">// Movable but not copyable, not assignable.</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <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>&& that) = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <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>&) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <a class="code" href="classprocess_1_1http_1_1Server.html">Server</a>& <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>&) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> </div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <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> </div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  <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>  <span class="comment">// stopped or a failure if one occured.</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></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> </div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  <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>  <span class="comment">// connections have been closed.</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1http_1_1Server.html#acc7de6562fb0670327e6d2a4e9e6c92c">stop</a>(<span class="keyword">const</span> StopOptions& 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> </div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  <span class="comment">// Returns the bound address of the server.</span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  <a class="code" href="classTry.html">Try<network::Address></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> </div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  <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>  <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&& socket,</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  std::function<<a class="code" href="classprocess_1_1Future.html">Future<Response></a>(</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::Socket</a>&,</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>&)>&& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>);</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> </div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <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>  <a class="code" href="classprocess_1_1Owned.html">Owned<ServerProcess></a> process;</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> };</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> </div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> </div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <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> 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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <span class="keyword">const</span> std::string& method,</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  <span class="keywordtype">bool</span> enableSSL = <span class="keyword">false</span>,</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>());</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> </div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> </div>
-<div class="line"><a name="l01158"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1http_1_1streaming.html"> 1158</a></span> <span class="keyword">namespace </span>streaming {</div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> </div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <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> <span class="comment">// and returns the HTTP response of type 'PIPE' once the response</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <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> <span class="comment">// from the Pipe::Reader.</span></div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></a> <span class="keyword">get</span>(</div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>& url,</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> </div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <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> <span class="comment">// given UPID and returns the HTTP response of type 'PIPE' once the</span></div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <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> <span class="comment">// body from the Pipe::Reader.</span></div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></a> <span class="keyword">get</span>(</div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& query = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> </div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <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> <span class="comment">// and returns the HTTP response of type 'PIPE' once the response</span></div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <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> <span class="comment">// from the Pipe::Reader.</span></div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>& url,</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> </div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <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> <span class="comment">// given UPID and returns the HTTP response of type 'PIPE' once the</span></div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <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> <span class="comment">// body from the Pipe::Reader.</span></div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>(),</div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> </div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> } <span class="comment">// namespace streaming {</span></div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> </div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> } <span class="comment">// namespace http {</span></div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> } <span class="comment">// namespace process {</span></div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> </div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="preprocessor">#endif // __PROCESS_HTTP_HPP__</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> 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>  <span class="keyword">const</span> URL& url,</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  <span class="keyword">const</span> std::string& method,</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> Request& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  <span class="keywordtype">bool</span> streamedResponse = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> </div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment">// TODO(Yongqiao Wang): Refactor other functions</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment">// (such as post/get/requestDelete) to use the 'request' function.</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> </div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment">// TODO(bmahler): Support discarding the future responses;</span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment">// discarding should disconnect from the server.</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> </div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <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> </div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <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> <span class="comment">// and returns the HTTP response of type 'BODY' once the entire</span></div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment">// response is received.</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></a> <span class="keyword">get</span>(</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  <span class="keyword">const</span> URL& url,</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> </div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> </div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <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> <span class="comment">// given UPID and returns the HTTP response of type 'BODY' once the</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment">// entire response is received.</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></a> <span class="keyword">get</span>(</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& query = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> </div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> </div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <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> <span class="comment">// and returns the HTTP response of type 'BODY' once the entire</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment">// response is received.</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> URL& url,</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> </div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> </div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <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> <span class="comment">// given UPID and returns the HTTP response of type 'BODY' once the</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment">// entire response is received.</span></div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> </div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> </div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> URL& url,</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> </div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> </div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> </div>
+<div class="line"><a name="l01258"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1http_1_1streaming.html"> 1258</a></span> <span class="keyword">namespace </span>streaming {</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> </div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <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> <span class="comment">// and returns the HTTP response of type 'PIPE' once the response</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <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> <span class="comment">// from the Pipe::Reader.</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></a> <span class="keyword">get</span>(</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>& url,</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> </div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <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> <span class="comment">// given UPID and returns the HTTP response of type 'PIPE' once the</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <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> <span class="comment">// body from the Pipe::Reader.</span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></a> <span class="keyword">get</span>(</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& query = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> </div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <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> <span class="comment">// and returns the HTTP response of type 'PIPE' once the response</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <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> <span class="comment">// from the Pipe::Reader.</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>& url,</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> </div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <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> <span class="comment">// given UPID and returns the HTTP response of type 'PIPE' once the</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <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> <span class="comment">// body from the Pipe::Reader.</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <a class="code" href="classprocess_1_1Future.html">Future<Response></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>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& upid,</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& path = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Headers></a>& headers = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& body = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& contentType = <a class="code" href="structNone.html">None</a>(),</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& scheme = <a class="code" href="structNone.html">None</a>());</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> </div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> } <span class="comment">// namespace streaming {</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> </div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> } <span class="comment">// namespace http {</span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> } <span class="comment">// namespace process {</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> </div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <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< Nothing > stop(const StopOptions &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< hashmap< std::string, std::string > > parse(const std::string &pattern, const std::string &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 &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 &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 &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 & join(std::stringstream &stream, const std::string &separator, T &&...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 &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< Server > create(network::Socket socket, std::function< Future< Response >(const network::Socket &socket, const Request &)> &&f, const CreateOptions &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< T > 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< std::string > 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>