@@ -43,10 +43,9 @@ struct linearize_header {
4343template <class ValueType >
4444 string_typeoperator ()(ValueType& header) {
4545typedef std::ostringstream output_stream;
46- typedef constants<Tag> consts;
4746 output_stream header_line;
48- header_line <<name (header) <<consts ::colon () <<consts ::space ()
49- <<value (header) <<consts ::crlf ();
47+ header_line <<name (header) <<constants ::colon () <<constants ::space ()
48+ <<value (header) <<constants ::crlf ();
5049return header_line.str ();
5150 }
5251};
@@ -57,36 +56,35 @@ OutputIterator linearize(Request const& request,
5756unsigned version_major,unsigned version_minor,
5857 OutputIterator oi) {
5958typedef typename Request::tag Tag;
60- typedef constants<Tag> consts;
6159typedef std::string string_type;
62- static string_type http_slash =consts ::http_slash (),
63- accept =consts ::accept (),
64- accept_mime =consts ::default_accept_mime (),
65- accept_encoding =consts ::accept_encoding (),
60+ static string_type http_slash =constants ::http_slash (),
61+ accept =constants ::accept (),
62+ accept_mime =constants ::default_accept_mime (),
63+ accept_encoding =constants ::accept_encoding (),
6664 default_accept_encoding =
67- consts ::default_accept_encoding (),
68- crlf =consts ::crlf (), host =consts ::host (),
69- connection =consts ::connection (), close =consts ::close ();
65+ constants ::default_accept_encoding (),
66+ crlf =constants ::crlf (), host =constants ::host (),
67+ connection =constants ::connection (), close =constants ::close ();
7068boost::copy (method, oi);
71- *oi =consts ::space_char ();
72- if (request.path ().empty () || request.path ()[0 ] !=consts ::slash_char ()) {
73- *oi =consts ::slash_char ();
69+ *oi =constants ::space_char ();
70+ if (request.path ().empty () || request.path ()[0 ] !=constants ::slash_char ()) {
71+ *oi =constants ::slash_char ();
7472 }
7573boost::copy (request.path (), oi);
7674if (!request.query ().empty ()) {
77- *oi =consts ::question_mark_char ();
75+ *oi =constants ::question_mark_char ();
7876boost::copy (request.query (), oi);
7977 }
8078if (!request.anchor ().empty ()) {
81- *oi =consts ::hash_char ();
79+ *oi =constants ::hash_char ();
8280boost::copy (request.anchor (), oi);
8381 }
84- *oi =consts ::space_char ();
82+ *oi =constants ::space_char ();
8583boost::copy (http_slash, oi);
8684 string_type version_major_str =std::to_string (version_major),
8785 version_minor_str =std::to_string (version_minor);
8886boost::copy (version_major_str, oi);
89- *oi =consts ::dot_char ();
87+ *oi =constants ::dot_char ();
9088boost::copy (version_minor_str, oi);
9189boost::copy (crlf, oi);
9290
@@ -96,12 +94,12 @@ OutputIterator linearize(Request const& request,
9694enum { ACCEPT, ACCEPT_ENCODING, HOST, CONNECTION, MAX };
9795 std::bitset<MAX> found_headers;
9896static char const * defaulted_headers[][2 ] = {
99- {consts ::accept (),consts ::accept () +std::strlen (consts ::accept ())},
100- {consts ::accept_encoding (),
101- consts ::accept_encoding () +std::strlen (consts ::accept_encoding ())},
102- {consts ::host (),consts ::host () +std::strlen (consts ::host ())},
103- {consts ::connection (),
104- consts ::connection () +std::strlen (consts ::connection ())}};
97+ {constants ::accept (),constants ::accept () +std::strlen (constants ::accept ())},
98+ {constants ::accept_encoding (),
99+ constants ::accept_encoding () +std::strlen (constants ::accept_encoding ())},
100+ {constants ::host (),constants ::host () +std::strlen (constants ::host ())},
101+ {constants ::connection (),
102+ constants ::connection () +std::strlen (constants ::connection ())}};
105103
106104typedef typename headers_range<Request>::type headers_range;
107105typedef typename range_value<headers_range>::type headers_value;
@@ -121,16 +119,16 @@ OutputIterator linearize(Request const& request,
121119// We ignore empty headers.
122120if (header_value.empty ())continue ;
123121boost::copy (header_name, oi);
124- *oi =consts ::colon_char ();
125- *oi =consts ::space_char ();
122+ *oi =constants ::colon_char ();
123+ *oi =constants ::space_char ();
126124boost::copy (header_value, oi);
127125boost::copy (crlf, oi);
128126 }
129127
130128if (!found_headers[HOST]) {
131129boost::copy (host, oi);
132- *oi =consts ::colon_char ();
133- *oi =consts ::space_char ();
130+ *oi =constants ::colon_char ();
131+ *oi =constants ::space_char ();
134132boost::copy (request.host (), oi);
135133 boost::optional<std::uint16_t > port_ =
136134#if (_MSC_VER >= 1600 && BOOST_VERSION > 105500)
@@ -140,33 +138,33 @@ OutputIterator linearize(Request const& request,
140138#endif
141139if (port_) {
142140 string_type port_str =std::to_string (*port_);
143- *oi =consts ::colon_char ();
141+ *oi =constants ::colon_char ();
144142boost::copy (port_str, oi);
145143 }
146144boost::copy (crlf, oi);
147145 }
148146
149147if (!found_headers[ACCEPT]) {
150148boost::copy (accept, oi);
151- *oi =consts ::colon_char ();
152- *oi =consts ::space_char ();
149+ *oi =constants ::colon_char ();
150+ *oi =constants ::space_char ();
153151boost::copy (accept_mime, oi);
154152boost::copy (crlf, oi);
155153 }
156154
157155if (version_major ==1u && version_minor ==1u &&
158156 !found_headers[ACCEPT_ENCODING]) {
159157boost::copy (accept_encoding, oi);
160- *oi =consts ::colon_char ();
161- *oi =consts ::space_char ();
158+ *oi =constants ::colon_char ();
159+ *oi =constants ::space_char ();
162160boost::copy (default_accept_encoding, oi);
163161boost::copy (crlf, oi);
164162 }
165163
166164if (!connection_keepalive<Tag>::value && !found_headers[CONNECTION]) {
167165boost::copy (connection, oi);
168- *oi =consts ::colon_char ();
169- *oi =consts ::space_char ();
166+ *oi =constants ::colon_char ();
167+ *oi =constants ::space_char ();
170168boost::copy (close, oi);
171169boost::copy (crlf, oi);
172170 }