⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _h_t_t_p_server_8hpp-source.html

📁 用c++编写http server的源码库,对socket等网络处理的代码可迅速转为己用.
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<a name="l00098"></a>00098     <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#95bd8a7c5882d19cd203f902aa8924cf">loadModule</a>(<span class="keyword">const</span> std::string&amp; resource, <span class="keyword">const</span> std::string&amp; module_name);<a name="l00099"></a>00099     <a name="l00107"></a>00107     <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#ae48d9e0433e0b956b13513597c57655">setModuleOption</a>(<span class="keyword">const</span> std::string&amp; resource,<a name="l00108"></a>00108                          <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; value);<a name="l00109"></a>00109     <a name="l00122"></a>00122     <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#2cc8edf6440a62b1582ff7162a9dc067">loadModuleConfig</a>(<span class="keyword">const</span> std::string&amp; config_name);<a name="l00123"></a>00123 <a name="l00125"></a>00125     <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#6f73057b1407cb4dcbd3ffc4612539e9" title="clears all the modules that are currently configured">clearModules</a>(<span class="keywordtype">void</span>);<a name="l00126"></a>00126     <a name="l00128"></a><a class="code" href="classpion_1_1_h_t_t_p_server.html#f8458bd7d7ed74466a25506e709e0ea3">00128</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#f8458bd7d7ed74466a25506e709e0ea3" title="sets the function that handles bad HTTP requests">setBadRequestHandler</a>(<a class="code" href="classpion_1_1_h_t_t_p_server.html#2be32ffd74ea6e1a01ad7faaf9ccebc3" title="handler for requests that result in "400 Bad Request"">BadRequestHandler</a> h) { m_bad_request_handler = h; }<a name="l00129"></a>00129     <a name="l00131"></a><a class="code" href="classpion_1_1_h_t_t_p_server.html#a16a6ee4c2acb5e5481987ea9efcc9da">00131</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#a16a6ee4c2acb5e5481987ea9efcc9da" title="sets the function that handles requests which match no other module">setNotFoundHandler</a>(<a class="code" href="classpion_1_1_h_t_t_p_server.html#67bd834e0b81b718ee551820478c7864" title="handler for requests that result in "404 Not Found"">NotFoundHandler</a> h) { m_not_found_handler = h; }<a name="l00132"></a>00132     <a name="l00134"></a><a class="code" href="classpion_1_1_h_t_t_p_server.html#a0500b78174f9465fdf5687e946a3d64">00134</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#a0500b78174f9465fdf5687e946a3d64" title="sets the function that handles requests which match no other module">setServerErrorHandler</a>(<a class="code" href="classpion_1_1_h_t_t_p_server.html#e66c8d13458b5d597e4ab5f8a80d18db" title="handler for requests that result in "500 Server Error"">ServerErrorHandler</a> h) { m_server_error_handler = h; }<a name="l00135"></a>00135 <a name="l00136"></a>00136     <a name="l00137"></a>00137 <span class="keyword">protected</span>:<a name="l00138"></a>00138     <a name="l00144"></a><a class="code" href="classpion_1_1_h_t_t_p_server.html#cc15aa773af3c82620cd3895ca9a9058">00144</a>     <span class="keyword">explicit</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#cc15aa773af3c82620cd3895ca9a9058">HTTPServer</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> tcp_port)<a name="l00145"></a>00145         : <a class="code" href="classpion_1_1_t_c_p_server.html">TCPServer</a>(tcp_port),<a name="l00146"></a>00146         m_bad_request_handler(<a class="code" href="classpion_1_1_h_t_t_p_server.html">HTTPServer</a>::<a class="code" href="classpion_1_1_h_t_t_p_server.html#aec0c406558aa20ccc076db57fdae0ee">handleBadRequest</a>),<a name="l00147"></a>00147         m_not_found_handler(<a class="code" href="classpion_1_1_h_t_t_p_server.html">HTTPServer</a>::<a class="code" href="classpion_1_1_h_t_t_p_server.html#bafcdd0c6b9533433e57821c5a312972">handleNotFoundRequest</a>),<a name="l00148"></a>00148         m_server_error_handler(<a class="code" href="classpion_1_1_h_t_t_p_server.html">HTTPServer</a>::<a class="code" href="classpion_1_1_h_t_t_p_server.html#dfa99550f6ce2e3be147904b32e077e5">handleServerError</a>)<a name="l00149"></a>00149     { <a name="l00150"></a>00150         <a class="code" href="classpion_1_1_t_c_p_server.html#e9b33f6ec5dda7203c8e408614d26a53" title="sets the logger to be used">setLogger</a>(PION_GET_LOGGER(<span class="stringliteral">"Pion.HTTPServer"</span>));<a name="l00151"></a>00151     }<a name="l00152"></a>00152     <a name="l00158"></a>00158     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#8d56ea8d41de7e5cfb3ce17addbd0a8b">handleConnection</a>(<a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>&amp; tcp_conn);<a name="l00159"></a>00159     <a name="l00166"></a>00166     <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#ce510154e117873d528e04bbf6f30d5b">handleRequest</a>(<a class="code" href="namespacepion.html#3c0f3fad0f449ebd309eaf4872f2b222" title="data type for a HTTP request pointer">HTTPRequestPtr</a>&amp; http_request, <a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>&amp; tcp_conn);<a name="l00167"></a>00167         <a name="l00174"></a>00174      <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#aec0c406558aa20ccc076db57fdae0ee">handleBadRequest</a>(<a class="code" href="namespacepion.html#3c0f3fad0f449ebd309eaf4872f2b222" title="data type for a HTTP request pointer">HTTPRequestPtr</a>&amp; http_request,<a name="l00175"></a>00175                                   <a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>&amp; tcp_conn);<a name="l00176"></a>00176     <a name="l00183"></a>00183     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#bafcdd0c6b9533433e57821c5a312972">handleNotFoundRequest</a>(<a class="code" href="namespacepion.html#3c0f3fad0f449ebd309eaf4872f2b222" title="data type for a HTTP request pointer">HTTPRequestPtr</a>&amp; http_request,<a name="l00184"></a>00184                                       <a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>&amp; tcp_conn);<a name="l00185"></a>00185     <a name="l00193"></a>00193     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#dfa99550f6ce2e3be147904b32e077e5">handleServerError</a>(<a class="code" href="namespacepion.html#3c0f3fad0f449ebd309eaf4872f2b222" title="data type for a HTTP request pointer">HTTPRequestPtr</a>&amp; http_request,<a name="l00194"></a>00194                                   <a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>&amp; tcp_conn,<a name="l00195"></a>00195                                   <span class="keyword">const</span> std::string&amp; error_msg);<a name="l00196"></a>00196     <a name="l00198"></a>00198     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#85ab5540af5eadd957e102b4d848f095" title="called before the TCP server starts listening for new connections">beforeStarting</a>(<span class="keywordtype">void</span>);<a name="l00199"></a>00199     <a name="l00201"></a>00201     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_h_t_t_p_server.html#d093dfe54d6808f2b86116c81490ff3a" title="called after the TCP server has stopped listing for new connections">afterStopping</a>(<span class="keywordtype">void</span>);<a name="l00202"></a>00202 <a name="l00203"></a>00203     <a name="l00204"></a>00204 <span class="keyword">private</span>:<a name="l00205"></a>00205     <a name="l00207"></a>00207     <span class="keyword">typedef</span> std::pair&lt;HTTPModule *, PionPluginPtr&lt;HTTPModule&gt; &gt; PluginPair;<a name="l00208"></a>00208     <a name="l00210"></a>00210     <span class="keyword">class </span>ModuleMap<a name="l00211"></a>00211         : <span class="keyword">public</span> std::map&lt;std::string, PluginPair&gt;<a name="l00212"></a>00212     {<a name="l00213"></a>00213     <span class="keyword">public</span>:<a name="l00214"></a>00214         <span class="keywordtype">void</span> clear(<span class="keywordtype">void</span>);<a name="l00215"></a>00215         <span class="keyword">virtual</span> ~ModuleMap() { ModuleMap::clear(); }<a name="l00216"></a>00216         ModuleMap(<span class="keywordtype">void</span>) {}<a name="l00217"></a>00217     };<a name="l00218"></a>00218     <a name="l00219"></a>00219     <a name="l00221"></a>00221     ModuleMap               m_modules;<a name="l00222"></a>00222 <a name="l00224"></a>00224     boost::mutex            m_mutex;<a name="l00225"></a>00225 <a name="l00227"></a>00227     <a class="code" href="classpion_1_1_h_t_t_p_server.html#2be32ffd74ea6e1a01ad7faaf9ccebc3" title="handler for requests that result in "400 Bad Request"">BadRequestHandler</a>       m_bad_request_handler;<a name="l00228"></a>00228     <a name="l00230"></a>00230     <a class="code" href="classpion_1_1_h_t_t_p_server.html#67bd834e0b81b718ee551820478c7864" title="handler for requests that result in "404 Not Found"">NotFoundHandler</a>         m_not_found_handler;<a name="l00231"></a>00231 <a name="l00233"></a>00233     <a class="code" href="classpion_1_1_h_t_t_p_server.html#e66c8d13458b5d597e4ab5f8a80d18db" title="handler for requests that result in "500 Server Error"">ServerErrorHandler</a>      m_server_error_handler;<a name="l00234"></a>00234 };<a name="l00235"></a>00235 <a name="l00236"></a>00236 <a name="l00238"></a><a class="code" href="namespacepion.html#7ed8c1f0fbb318801a8a19dda04f7001">00238</a> <span class="keyword">typedef</span> boost::shared_ptr&lt;HTTPServer&gt;       <a class="code" href="namespacepion.html#7ed8c1f0fbb318801a8a19dda04f7001" title="data type for a HTTP protocol handler pointer">HTTPServerPtr</a>;<a name="l00239"></a>00239 <a name="l00240"></a>00240 <a name="l00241"></a>00241 }   <span class="comment">// end namespace pion</span><a name="l00242"></a>00242 <a name="l00243"></a>00243 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 19 13:29:22 2007 for libpion by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -