5 #ifndef HH_HTTPRequest_
6 #define HH_HTTPRequest_ 1
12 #include <boost/range/iterator_range.hpp>
13 #include "Socket/FileHandle.hh"
15 //#include "HTTPRequest.mpp"
16 ///////////////////////////////hh.p////////////////////////////////////////
24 ///////////////////////////////////////////////////////////////////////////
27 ///////////////////////////////////////////////////////////////////////////
28 ///\name Structors and default members
32 HTTPRequest(senf::FileHandle handle, std::string const & request);
35 ///////////////////////////////////////////////////////////////////////////
39 std::string const & host() const;
40 std::string const & method() const;
41 std::string const & url() const;
42 std::string const & version() const;
43 std::string const & operator[](std::string const & key) const;
46 ///////////////////////////////////////////////////////////////////////////
50 void parseRequest(senf::FileHandle handle, std::string const & request);
57 void parseRequestURL(boost::iterator_range<std::string::const_iterator> line);
58 void parseRequestHeader(boost::iterator_range<std::string::const_iterator> line);
60 typedef std::map<std::string,std::string> Headers;
69 struct InvalidHTTPRequestException : public std::exception
70 { char const * what() const throw() { return "invalid http request"; } };
74 ///////////////////////////////hh.e////////////////////////////////////////
75 #include "HTTPRequest.cci"
76 //#include "HTTPRequest.ct"
77 //#include "HTTPRequest.cti"
78 //#include "HTTPRequest.mpp"