19 #ifndef INCLUDE_RCF_HTTPFRAMEFILTER_HPP
20 #define INCLUDE_RCF_HTTPFRAMEFILTER_HPP
24 #include <boost/shared_ptr.hpp>
26 #include <RCF/Filter.hpp>
27 #include <RCF/ByteBuffer.hpp>
31 class HttpFrameFilter :
public Filter
36 HttpFrameFilter(
const std::string serverAddr,
int serverPort);
41 const ByteBuffer &byteBuffer,
42 std::size_t bytesRequested);
44 void write(
const std::vector<ByteBuffer> &byteBuffers);
46 void onReadCompleted(
const ByteBuffer &byteBuffer);
48 void onWriteCompleted(std::size_t bytesTransferred);
50 int getFilterId()
const;
52 virtual std::size_t getFrameSize();
56 std::string mServerAddr;
59 std::vector<ByteBuffer> mWriteBuffers;
60 std::size_t mWritePos;
62 ByteBuffer mOrigReadBuffer;
63 std::size_t mOrigBytesRequested;
65 boost::shared_ptr< std::vector<char> > mReadVectorPtr;
66 std::size_t mBytesReceived;
69 std::size_t mHeaderLen;
70 std::size_t mContentLen;
72 std::string mRequestLine;
73 std::string mResponseLine;
74 std::map<std::string, std::string> mHeaders;
79 #endif // ! INCLUDE_RCF_HTTPFRAMEFILTER_HPP