📄 _h_t_t_p_server_8hpp-source.html
字号:
<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& resource, <span class="keyword">const</span> std::string& 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& resource,<a name="l00108"></a>00108 <span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& 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& 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>& 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>& http_request, <a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>& 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>& http_request,<a name="l00175"></a>00175 <a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>& 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>& http_request,<a name="l00184"></a>00184 <a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>& 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>& http_request,<a name="l00194"></a>00194 <a class="code" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41" title="data type for a TCPConnection pointer">TCPConnectionPtr</a>& tcp_conn,<a name="l00195"></a>00195 <span class="keyword">const</span> std::string& 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<HTTPModule *, PionPluginPtr<HTTPModule> > 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<std::string, PluginPair><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<HTTPServer> <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 <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 + -