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

📄 classpion_1_1_h_t_t_p_request_parser.html

📁 用c++编写http server的源码库,对socket等网络处理的代码可迅速转为己用.
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!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&nbsp;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&nbsp;List</span></a></li>    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>    <li><a href="functions.html"><span>Class&nbsp;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 &lt;<a class="el" href="_h_t_t_p_request_parser_8hpp-source.html">HTTPRequestParser.hpp</a>&gt;</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&lt;<br> void, <a class="el" href="namespacepion.html#3c0f3fad0f449ebd309eaf4872f2b222">HTTPRequestPtr</a>, <a class="el" href="namespacepion.html#1858b89656b28c6498ad9efd6b7e9d41">TCPConnectionPtr</a> &gt;&nbsp;</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&nbsp;</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&nbsp;</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">&nbsp;</td><td class="mdescRight">Incrementally reads &amp; 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&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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&lt;<br> <a class="el" href="classpion_1_1_h_t_t_p_request_parser.html">HTTPRequestParser</a> &gt;&nbsp;</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> &amp;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">&nbsp;</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> &amp;tcp_conn)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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 &amp;read_error, std::size_t bytes_read)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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 &amp;read_error, std::size_t bytes_read)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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 &amp;read_error)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">boost::tribool&nbsp;</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 *&amp;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&nbsp;</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> &amp;dict, const char *ptr, const size_t len)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</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> &amp;dict, const std::string &amp;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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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 &amp; Destructor Documentation</h2><a class="anchor" name="6d11653b7da75af0db7ac16048c98902"></a><!-- doxytag: member="pion::HTTPRequestParser::HTTPRequestParser" ref="6d11653b7da75af0db7ac16048c98902" args="(RequestHandler handler, TCPConnectionPtr &amp;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>&nbsp;</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> &amp;&nbsp;</td>          <td class="paramname"> <em>tcp_conn</em></td><td>&nbsp;</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>&nbsp;</td><td>HTTP request handler used to process new requests </td></tr>    <tr><td valign="top"></td><td valign="top"><em>tcp_conn</em>&nbsp;</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 &amp;tcp_conn)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">static boost::shared_ptr&lt;<a class="el" href="classpion_1_1_h_t_t_p_request_parser.html">HTTPRequestParser</a>&gt; 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>&nbsp;</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> &amp;&nbsp;</td>          <td class="paramname"> <em>tcp_conn</em></td><td>&nbsp;</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>&nbsp;</td><td>HTTP request handler used to process new requests </td></tr>    <tr><td valign="top"></td><td valign="top"><em>tcp_conn</em>&nbsp;</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 &amp;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 &amp;&nbsp;</td>          <td class="paramname"> <em>read_error</em>, </td>        </tr>        <tr>          <td class="paramkey"></td>          <td></td>          <td class="paramtype">std::size_t&nbsp;</td>          <td class="paramname"> <em>bytes_read</em></td><td>&nbsp;</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>&nbsp;</td><td>error status from the last read operation </td></tr>    <tr><td valign="top"></td><td valign="top"><em>bytes_read</em>&nbsp;</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 &amp;read_error, std::size_t bytes_read)" --><div class="memitem">

⌨️ 快捷键说明

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