1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<title>pion: pion::http::reader Class Reference</title>
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10
<!-- Generated by Doxygen 1.6.1 -->
11
<div class="navigation" id="top">
14
<li><a href="index.html"><span>Main Page</span></a></li>
15
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
16
<li><a href="files.html"><span>Files</span></a></li>
21
<li><a href="annotated.html"><span>Class List</span></a></li>
22
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
23
<li><a href="functions.html"><span>Class Members</span></a></li>
26
<div class="navpath"><b>pion</b>::<b>http</b>::<a class="el" href="classpion_1_1http_1_1reader.html">reader</a>
29
<div class="contents">
30
<h1>pion::http::reader Class Reference</h1><!-- doxytag: class="pion::http::reader" --><!-- doxytag: inherits="pion::http::parser" -->
31
<p><code>#include <<a class="el" href="reader_8hpp_source.html">reader.hpp</a>></code></p>
33
<p>Inherits <a class="el" href="classpion_1_1http_1_1parser.html">pion::http::parser</a>.</p>
35
<p>Inherited by <a class="el" href="classpion_1_1http_1_1request__reader.html">pion::http::request_reader</a>, and <a class="el" href="classpion_1_1http_1_1response__reader.html">pion::http::response_reader</a>.</p>
37
<p><a href="classpion_1_1http_1_1reader-members.html">List of all members.</a></p>
38
<table border="0" cellpadding="0" cellspacing="0">
39
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
40
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9f883cb767252fb9976e229e68f20ea"></a><!-- doxytag: member="pion::http::reader::receive" ref="af9f883cb767252fb9976e229e68f20ea" args="(void)" -->
41
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#af9f883cb767252fb9976e229e68f20ea">receive</a> (void)</td></tr>
42
<tr><td class="mdescLeft"> </td><td class="mdescRight">Incrementally reads & parses the HTTP <a class="el" href="classpion_1_1http_1_1message.html">message</a>. <br/></td></tr>
43
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6df8c9dd8f6587b49eb54ce4f7ace431"></a><!-- doxytag: member="pion::http::reader::get_connection" ref="a6df8c9dd8f6587b49eb54ce4f7ace431" args="(void)" -->
44
tcp::connection_ptr & </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#a6df8c9dd8f6587b49eb54ce4f7ace431">get_connection</a> (void)</td></tr>
45
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns a shared pointer to the TCP connection <br/></td></tr>
46
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aabe13844673a420869d0e0fe31e198ad"></a><!-- doxytag: member="pion::http::reader::set_timeout" ref="aabe13844673a420869d0e0fe31e198ad" args="(boost::uint32_t seconds)" -->
47
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#aabe13844673a420869d0e0fe31e198ad">set_timeout</a> (boost::uint32_t seconds)</td></tr>
48
<tr><td class="mdescLeft"> </td><td class="mdescRight">sets the maximum number of seconds for read operations <br/></td></tr>
49
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
50
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#a32970499fa606eb9a8a71ce7afbcf252">reader</a> (const bool is_request, tcp::connection_ptr &tcp_conn)</td></tr>
51
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#afd7a8af3a502d6863ef5c2166d3d7208">consume_bytes</a> (const boost::system::error_code &read_error, std::size_t bytes_read)</td></tr>
52
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc3496a25c7bd1fb3ecc704ed752b190"></a><!-- doxytag: member="pion::http::reader::consume_bytes" ref="acc3496a25c7bd1fb3ecc704ed752b190" args="(void)" -->
53
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#acc3496a25c7bd1fb3ecc704ed752b190">consume_bytes</a> (void)</td></tr>
54
<tr><td class="mdescLeft"> </td><td class="mdescRight">Consumes bytes that have been read using an HTTP <a class="el" href="classpion_1_1http_1_1parser.html">parser</a>. <br/></td></tr>
55
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a3b9767dc84fd1a6ee0e1558ec3d76e"></a><!-- doxytag: member="pion::http::reader::read_bytes" ref="a8a3b9767dc84fd1a6ee0e1558ec3d76e" args="(void)=0" -->
56
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#a8a3b9767dc84fd1a6ee0e1558ec3d76e">read_bytes</a> (void)=0</td></tr>
57
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads more bytes from the TCP connection. <br/></td></tr>
58
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7d3818810df72a7d2895ff1f767be9b"></a><!-- doxytag: member="pion::http::reader::finished_reading" ref="ae7d3818810df72a7d2895ff1f767be9b" args="(const boost::system::error_code &ec)=0" -->
59
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#ae7d3818810df72a7d2895ff1f767be9b">finished_reading</a> (const boost::system::error_code &ec)=0</td></tr>
60
<tr><td class="mdescLeft"> </td><td class="mdescRight">Called after we have finished reading/parsing the HTTP <a class="el" href="classpion_1_1http_1_1message.html">message</a>. <br/></td></tr>
61
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6186ceb636d352cae97c33fe105bd9a3"></a><!-- doxytag: member="pion::http::reader::get_message" ref="a6186ceb636d352cae97c33fe105bd9a3" args="(void)=0" -->
62
virtual <a class="el" href="classpion_1_1http_1_1message.html">http::message</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classpion_1_1http_1_1reader.html#a6186ceb636d352cae97c33fe105bd9a3">get_message</a> (void)=0</td></tr>
63
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a reference to the HTTP <a class="el" href="classpion_1_1http_1_1message.html">message</a> being parsed. <br/></td></tr>
65
<hr/><a name="_details"></a><h2>Detailed Description</h2>
66
<p><a class="el" href="classpion_1_1http_1_1reader.html">reader</a>: asynchronously reads and parses HTTP messages </p>
68
<p>Definition at line <a class="el" href="reader_8hpp_source.html#l00028">28</a> of file <a class="el" href="reader_8hpp_source.html">reader.hpp</a>.</p>
69
<hr/><h2>Constructor & Destructor Documentation</h2>
70
<a class="anchor" id="a32970499fa606eb9a8a71ce7afbcf252"></a><!-- doxytag: member="pion::http::reader::reader" ref="a32970499fa606eb9a8a71ce7afbcf252" args="(const bool is_request, tcp::connection_ptr &tcp_conn)" -->
72
<div class="memproto">
73
<table class="memname">
75
<td class="memname">pion::http::reader::reader </td>
77
<td class="paramtype">const bool </td>
78
<td class="paramname"> <em>is_request</em>, </td>
81
<td class="paramkey"></td>
83
<td class="paramtype">tcp::connection_ptr & </td>
84
<td class="paramname"> <em>tcp_conn</em></td><td> </td>
89
<td></td><td></td><td><code> [inline, protected]</code></td>
94
<p>protected constructor: only derived classes may create objects</p>
95
<dl><dt><b>Parameters:</b></dt><dd>
96
<table border="0" cellspacing="2" cellpadding="0">
97
<tr><td valign="top"></td><td valign="top"><em>is_request</em> </td><td>if true, the <a class="el" href="classpion_1_1http_1_1message.html">message</a> is parsed as an HTTP <a class="el" href="classpion_1_1http_1_1request.html">request</a>; if false, the <a class="el" href="classpion_1_1http_1_1message.html">message</a> is parsed as an HTTP <a class="el" href="classpion_1_1http_1_1response.html">response</a> </td></tr>
98
<tr><td valign="top"></td><td valign="top"><em>tcp_conn</em> </td><td>TCP connection containing a new <a class="el" href="classpion_1_1http_1_1message.html">message</a> to parse </td></tr>
103
<p>Definition at line <a class="el" href="reader_8hpp_source.html#l00055">55</a> of file <a class="el" href="reader_8hpp_source.html">reader.hpp</a>.</p>
107
<hr/><h2>Member Function Documentation</h2>
108
<a class="anchor" id="afd7a8af3a502d6863ef5c2166d3d7208"></a><!-- doxytag: member="pion::http::reader::consume_bytes" ref="afd7a8af3a502d6863ef5c2166d3d7208" args="(const boost::system::error_code &read_error, std::size_t bytes_read)" -->
109
<div class="memitem">
110
<div class="memproto">
111
<table class="memname">
113
<td class="memname">void pion::http::reader::consume_bytes </td>
115
<td class="paramtype">const boost::system::error_code & </td>
116
<td class="paramname"> <em>read_error</em>, </td>
119
<td class="paramkey"></td>
121
<td class="paramtype">std::size_t </td>
122
<td class="paramname"> <em>bytes_read</em></td><td> </td>
127
<td></td><td></td><td><code> [protected]</code></td>
132
<p>Consumes bytes that have been read using an HTTP <a class="el" href="classpion_1_1http_1_1parser.html">parser</a></p>
133
<dl><dt><b>Parameters:</b></dt><dd>
134
<table border="0" cellspacing="2" cellpadding="0">
135
<tr><td valign="top"></td><td valign="top"><em>read_error</em> </td><td>error status from the last read operation </td></tr>
136
<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>
141
<p>Definition at line <a class="el" href="http__reader_8cpp_source.html#l00041">41</a> of file <a class="el" href="http__reader_8cpp_source.html">http_reader.cpp</a>.</p>
143
<p>References <a class="el" href="http__reader_8cpp_source.html#l00066">consume_bytes()</a>, <a class="el" href="http_2parser_8hpp_source.html#l00272">pion::http::parser::is_parsing_request()</a>, <a class="el" href="http_2parser_8hpp_source.html#l00561">pion::http::parser::m_logger</a>, and <a class="el" href="http_2parser_8hpp_source.html#l00180">pion::http::parser::set_read_buffer()</a>.</p>
147
<hr/>The documentation for this class was generated from the following files:<ul>
148
<li>include/pion/http/<a class="el" href="reader_8hpp_source.html">reader.hpp</a></li>
149
<li>src/<a class="el" href="http__reader_8cpp_source.html">http_reader.cpp</a></li>
152
<hr size="1"/><address style="text-align: right;"><small>Generated on 15 Apr 2013 for pion by
153
<a href="http://www.doxygen.org/index.html">
154
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>