10 #ifndef __PION_HTTPREADER_HEADER__
11 #define __PION_HTTPREADER_HEADER__
13 #include <boost/asio.hpp>
14 #include <pion/PionConfig.hpp>
15 #include <pion/net/HTTPParser.hpp>
16 #include <pion/net/HTTPMessage.hpp>
17 #include <pion/net/TCPConnection.hpp>
18 #include <pion/net/TCPTimer.hpp>
43 inline void setTimeout(boost::uint32_t seconds) { m_read_timeout = seconds; }
55 HTTPReader(
const bool is_request, TCPConnectionPtr& tcp_conn)
56 :
HTTPParser(is_request), m_tcp_conn(tcp_conn),
57 m_read_timeout(DEFAULT_READ_TIMEOUT)
66 void consumeBytes(
const boost::system::error_code& read_error,
67 std::size_t bytes_read);
70 void consumeBytes(
void);
73 virtual void readBytes(
void) = 0;
76 virtual void finishedReading(
const boost::system::error_code& ec) = 0;
85 void readBytesWithTimeout(
void);
92 void handleReadError(
const boost::system::error_code& read_error);
96 static const boost::uint32_t DEFAULT_READ_TIMEOUT;
100 TCPConnectionPtr m_tcp_conn;
103 TCPTimerPtr m_timer_ptr;
106 boost::uint32_t m_read_timeout;
TCPConnectionPtr & getTCPConnection(void)
returns a shared pointer to the TCP connection
void setTimeout(boost::uint32_t seconds)
sets the maximum number of seconds for read operations
the following enables use of the lock-free cache
HTTPReader(const bool is_request, TCPConnectionPtr &tcp_conn)