📄 classpion_1_1_h_t_t_p_request_parser.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>libpion: pion::HTTPRequestParser Class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.2 --><div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul></div><div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul></div><div class="nav"><a class="el" href="namespacepion.html">pion</a>::<a class="el" href="classpion_1_1_h_t_t_p_request_parser.html">HTTPRequestParser</a></div><h1>pion::HTTPRequestParser Class Reference</h1><!-- doxytag: class="pion::HTTPRequestParser" --><code>#include <<a class="el" href="_h_t_t_p_request_parser_8hpp-source.html">HTTPRequestParser.hpp</a>></code><p><a href="classpion_1_1_h_t_t_p_request_parser-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html">HTTPRequestParser</a>: parses HTTP Requests <p><p>Definition at line <a class="el" href="_h_t_t_p_request_parser_8hpp-source.html#l00031">31</a> of file <a class="el" href="_h_t_t_p_request_parser_8hpp-source.html">HTTPRequestParser.hpp</a>.<table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Public Types</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="26cf0c6dc782770796d07ed132167e88"></a><!-- doxytag: member="pion::HTTPRequestParser::RequestHandler" ref="26cf0c6dc782770796d07ed132167e88" args="" -->typedef boost::function2<<br> void, <a class="el" href="namespacepion.html#3c0f3fad0f449ebd309eaf4872f2b222">HTTPRequestPtr</a>, <a class="el" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41">TCPConnectionPtr</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#26cf0c6dc782770796d07ed132167e88">RequestHandler</a></td></tr><tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="15499f26447a8b93432e086f28587ac2"></a><!-- doxytag: member="pion::HTTPRequestParser::~HTTPRequestParser" ref="15499f26447a8b93432e086f28587ac2" args="()" -->virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#15499f26447a8b93432e086f28587ac2">~HTTPRequestParser</a> ()</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9208a39a2d32349d65ffaee6bca5c849"></a><!-- doxytag: member="pion::HTTPRequestParser::readRequest" ref="9208a39a2d32349d65ffaee6bca5c849" args="(void)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#9208a39a2d32349d65ffaee6bca5c849">readRequest</a> (void)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Incrementally reads & parses a new HTTP request. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="25977e523d544c85cbd78d11dd2b076f"></a><!-- doxytag: member="pion::HTTPRequestParser::setLogger" ref="25977e523d544c85cbd78d11dd2b076f" args="(PionLogger log_ptr)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#25977e523d544c85cbd78d11dd2b076f">setLogger</a> (<a class="el" href="namespacepion.html#917bc483e4f692504156efb93c11b322">PionLogger</a> log_ptr)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">sets the logger to be used <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9d3bfd0efce88d5c382ef0b8a39d8274"></a><!-- doxytag: member="pion::HTTPRequestParser::getLogger" ref="9d3bfd0efce88d5c382ef0b8a39d8274" args="(void)" --><a class="el" href="namespacepion.html#917bc483e4f692504156efb93c11b322">PionLogger</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#9d3bfd0efce88d5c382ef0b8a39d8274">getLogger</a> (void)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">returns the logger currently in use <br></td></tr><tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static boost::shared_ptr<<br> <a class="el" href="classpion_1_1_h_t_t_p_request_parser.html">HTTPRequestParser</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#51ffa6adfe35890ee0fad74a662be30d">create</a> (<a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#26cf0c6dc782770796d07ed132167e88">RequestHandler</a> handler, <a class="el" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41">TCPConnectionPtr</a> &tcp_conn)</td></tr><tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#6d11653b7da75af0db7ac16048c98902">HTTPRequestParser</a> (<a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#26cf0c6dc782770796d07ed132167e88">RequestHandler</a> handler, <a class="el" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41">TCPConnectionPtr</a> &tcp_conn)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#921419675678bf79df13d9f3ee0a893a">readHeaderBytes</a> (const boost::system::error_code &read_error, std::size_t bytes_read)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#20e7739e89be3603f6463801e8bdc489">readContentBytes</a> (const boost::system::error_code &read_error, std::size_t bytes_read)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#af553431fca527b6f1eb41489f7a7b1e">handleReadError</a> (const boost::system::error_code &read_error)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">boost::tribool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#67d29971d989f532be4160153ff7d071">parseRequestHeaders</a> (const char *&ptr, const size_t len)</td></tr><tr><td colspan="2"><br><h2>Static Protected Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#57d7592db90c02bca8d57c9b27846bc8">parseURLEncoded</a> (<a class="el" href="structpion_1_1_h_t_t_p_types.html#c860abe7b994d3c0311318f2e335086e">HTTPTypes::StringDictionary</a> &dict, const char *ptr, const size_t len)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#0de32e9cf76ad689b6f86588c68e3118">parseCookieHeader</a> (<a class="el" href="structpion_1_1_h_t_t_p_types.html#c860abe7b994d3c0311318f2e335086e">HTTPTypes::StringDictionary</a> &dict, const std::string &cookie_header)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3576f39f53f154efb0ba36486abedc64"></a><!-- doxytag: member="pion::HTTPRequestParser::isChar" ref="3576f39f53f154efb0ba36486abedc64" args="(int c)" -->static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#3576f39f53f154efb0ba36486abedc64">isChar</a> (int c)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f064aeda3ebd36b268e4a672903bfbd"></a><!-- doxytag: member="pion::HTTPRequestParser::isControl" ref="8f064aeda3ebd36b268e4a672903bfbd" args="(int c)" -->static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#8f064aeda3ebd36b268e4a672903bfbd">isControl</a> (int c)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c1e2d889f65e4ce9cdf48c7ceb73ddfa"></a><!-- doxytag: member="pion::HTTPRequestParser::isSpecial" ref="c1e2d889f65e4ce9cdf48c7ceb73ddfa" args="(int c)" -->static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#c1e2d889f65e4ce9cdf48c7ceb73ddfa">isSpecial</a> (int c)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fadced7b359e96de0e1fdaad97d5f695"></a><!-- doxytag: member="pion::HTTPRequestParser::isDigit" ref="fadced7b359e96de0e1fdaad97d5f695" args="(int c)" -->static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#fadced7b359e96de0e1fdaad97d5f695">isDigit</a> (int c)</td></tr></table><hr><h2>Constructor & Destructor Documentation</h2><a class="anchor" name="6d11653b7da75af0db7ac16048c98902"></a><!-- doxytag: member="pion::HTTPRequestParser::HTTPRequestParser" ref="6d11653b7da75af0db7ac16048c98902" args="(RequestHandler handler, TCPConnectionPtr &tcp_conn)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">pion::HTTPRequestParser::HTTPRequestParser </td> <td>(</td> <td class="paramtype"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#26cf0c6dc782770796d07ed132167e88">RequestHandler</a> </td> <td class="paramname"> <em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41">TCPConnectionPtr</a> & </td> <td class="paramname"> <em>tcp_conn</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline, protected]</code></td> </tr> </table></div><div class="memdoc"><p>protected constructor restricts creation of objects (use <a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#51ffa6adfe35890ee0fad74a662be30d">create()</a>)<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>HTTP request handler used to process new requests </td></tr> <tr><td valign="top"></td><td valign="top"><em>tcp_conn</em> </td><td>TCP connection containing a new request to parse </td></tr> </table></dl><p>Definition at line <a class="el" href="_h_t_t_p_request_parser_8hpp-source.html#l00075">75</a> of file <a class="el" href="_h_t_t_p_request_parser_8hpp-source.html">HTTPRequestParser.hpp</a>.<p>Referenced by <a class="el" href="_h_t_t_p_request_parser_8hpp-source.html#l00048">create()</a>.</div></div><p><hr><h2>Member Function Documentation</h2><a class="anchor" name="51ffa6adfe35890ee0fad74a662be30d"></a><!-- doxytag: member="pion::HTTPRequestParser::create" ref="51ffa6adfe35890ee0fad74a662be30d" args="(RequestHandler handler, TCPConnectionPtr &tcp_conn)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">static boost::shared_ptr<<a class="el" href="classpion_1_1_h_t_t_p_request_parser.html">HTTPRequestParser</a>> pion::HTTPRequestParser::create </td> <td>(</td> <td class="paramtype"><a class="el" href="classpion_1_1_h_t_t_p_request_parser.html#26cf0c6dc782770796d07ed132167e88">RequestHandler</a> </td> <td class="paramname"> <em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41">TCPConnectionPtr</a> & </td> <td class="paramname"> <em>tcp_conn</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline, static]</code></td> </tr> </table></div><div class="memdoc"><p>creates new <a class="el" href="classpion_1_1_h_t_t_p_request_parser.html">HTTPRequestParser</a> objects<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>HTTP request handler used to process new requests </td></tr> <tr><td valign="top"></td><td valign="top"><em>tcp_conn</em> </td><td>TCP connection containing a new request to parse </td></tr> </table></dl><p>Definition at line <a class="el" href="_h_t_t_p_request_parser_8hpp-source.html#l00048">48</a> of file <a class="el" href="_h_t_t_p_request_parser_8hpp-source.html">HTTPRequestParser.hpp</a>.<p>References <a class="el" href="_h_t_t_p_request_parser_8hpp-source.html#l00075">HTTPRequestParser()</a>.<p>Referenced by <a class="el" href="_h_t_t_p_server_8cpp-source.html#l00023">pion::HTTPServer::handleConnection()</a>.</div></div><p><a class="anchor" name="921419675678bf79df13d9f3ee0a893a"></a><!-- doxytag: member="pion::HTTPRequestParser::readHeaderBytes" ref="921419675678bf79df13d9f3ee0a893a" args="(const boost::system::error_code &read_error, std::size_t bytes_read)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void pion::HTTPRequestParser::readHeaderBytes </td> <td>(</td> <td class="paramtype">const boost::system::error_code & </td> <td class="paramname"> <em>read_error</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::size_t </td> <td class="paramname"> <em>bytes_read</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [protected]</code></td> </tr> </table></div><div class="memdoc"><p>Called after new request header bytes have been read<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>read_error</em> </td><td>error status from the last read operation </td></tr> <tr><td valign="top"></td><td valign="top"><em>bytes_read</em> </td><td>number of bytes consumed by the last read operation </td></tr> </table></dl><p>Definition at line <a class="el" href="_h_t_t_p_request_parser_8cpp-source.html#l00056">56</a> of file <a class="el" href="_h_t_t_p_request_parser_8cpp-source.html">HTTPRequestParser.cpp</a>.<p>References <a class="el" href="_h_t_t_p_request_parser_8cpp-source.html#l00224">handleReadError()</a>, <a class="el" href="_h_t_t_p_types_8hpp-source.html#l00039">pion::HTTPTypes::HEADER_CONTENT_LENGTH</a>, <a class="el" href="_h_t_t_p_request_parser_8cpp-source.html#l00240">parseRequestHeaders()</a>, <a class="el" href="_h_t_t_p_request_parser_8cpp-source.html#l00174">readContentBytes()</a>, and <a class="el" href="_h_t_t_p_request_parser_8cpp-source.html#l00034">readRequest()</a>.<p>Referenced by <a class="el" href="_h_t_t_p_request_parser_8cpp-source.html#l00034">readRequest()</a>.</div></div><p><a class="anchor" name="20e7739e89be3603f6463801e8bdc489"></a><!-- doxytag: member="pion::HTTPRequestParser::readContentBytes" ref="20e7739e89be3603f6463801e8bdc489" args="(const boost::system::error_code &read_error, std::size_t bytes_read)" --><div class="memitem">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -