37 #include <boost/spirit/include/qi.hpp> 42 URIGrammar::URIGrammar() :
43 URIGrammar::base_type ( start )
45 using namespace boost::spirit;
46 start = protocol > hostname > - ( port ) > - ( path ) > -( extension ) > - ( data_pairs_vector );
51 protocol = + ( qi::char_ - qi::lit (
":" ) ) > qi::lit (
"://" );
52 hostname = + ( qi::char_ - qi::lit (
":" ) - qi::lit (
"?" ) ) ;
53 port = qi::lit (
":" ) > + ( qi::char_ - ascii::punct ) ;
54 path = qi::lit (
"/" ) > + ( qi::char_ - qi::lit (
"." ) - qi::lit (
"?" ) );
55 extension = qi::lit (
"." ) > + ( qi::char_ - qi::lit (
"?" ) ) ;
56 data_pairs_vector = qi::lit (
"?" ) > *data_pairs;
57 data_pairs = data_pairs_1 > data_pairs_2;
58 data_pairs_1 = + ( qi::char_ - qi::lit (
"=" ) ) > qi::lit (
"=" );
59 data_pairs_2 = * ( qi::char_ - qi::lit (
"&" ) ) >> - ( qi::lit (
"&" ) );
61 empty_string = boost::spirit::qi::as_string[ boost::spirit::eps ];
The log_inserter function to add an HttpResponseType object to a log entry.