10 #ifndef __PION_HTTP_READER_HEADER__ 11 #define __PION_HTTP_READER_HEADER__ 13 #include <boost/asio.hpp> 14 #include <pion/config.hpp> 15 #include <pion/http/parser.hpp> 16 #include <pion/http/message.hpp> 17 #include <pion/tcp/connection.hpp> 18 #include <pion/tcp/timer.hpp> 43 inline void set_timeout(boost::uint32_t seconds) { m_read_timeout = seconds; }
55 reader(
const bool is_request,
const tcp::connection_ptr& tcp_conn)
56 : http::
parser(is_request), m_tcp_conn(tcp_conn),
57 m_read_timeout(DEFAULT_READ_TIMEOUT)
66 void consume_bytes(
const boost::system::error_code& read_error,
67 std::size_t bytes_read);
70 void consume_bytes(
void);
73 virtual void read_bytes(
void) = 0;
76 virtual void finished_reading(
const boost::system::error_code& ec) = 0;
85 void read_bytes_with_timeout(
void);
92 void handle_read_error(
const boost::system::error_code& read_error);
96 static const boost::uint32_t DEFAULT_READ_TIMEOUT;
100 tcp::connection_ptr m_tcp_conn;
103 tcp::timer_ptr m_timer_ptr;
106 boost::uint32_t m_read_timeout;
reader(const bool is_request, const tcp::connection_ptr &tcp_conn)
tcp::connection_ptr & get_connection(void)
returns a shared pointer to the TCP connection
void set_timeout(boost::uint32_t seconds)
sets the maximum number of seconds for read operations