30
30
31
31
namespace boost {namespace network {namespace http {
32
32
33
- using boost::asio::io_service;
34
- namespace system = boost::system;
35
- using boost::asio::ip::tcp;
36
- using boost::array;
37
- using boost::tribool;
38
- using boost::tuple;
39
- namespace tuples = boost::tuples;
40
- using boost::tuples::tie;
41
- using boost::bind;
42
- using boost::to_lower_copy;
43
-
44
33
template <class Tag ,class Handler >
45
34
struct connection : boost::enable_shared_from_this<connection<Tag,Handler> > {
46
35
47
- connection (io_service & service, Handler & handler)
36
+ connection (boost::asio:: io_service & service, Handler & handler)
48
37
: service_(service)
49
38
, handler_(handler)
50
39
, socket_(service_)
51
40
, wrapper_(service_)
52
41
{
53
42
}
54
43
55
- tcp::socket &socket () {
44
+ boost::asio::ip:: tcp::socket &socket () {
56
45
return socket_;
57
46
}
58
47
@@ -62,13 +51,14 @@ namespace boost { namespace network { namespace http {
62
51
// and then pass that request object to the
63
52
// handler_ instance.
64
53
//
54
+ using boost::asio::ip::tcp;
65
55
boost::system::error_code option_error;
66
56
socket_.set_option (tcp::no_delay (true ), option_error);
67
- if (option_error) handler_.log (system::system_error (option_error).what ());
57
+ if (option_error) handler_.log (boost:: system::system_error (option_error).what ());
68
58
socket_.async_read_some (
69
59
boost::asio::buffer (buffer_),
70
60
wrapper_.wrap (
71
- bind (
61
+ boost:: bind (
72
62
&connection<Tag,Handler>::handle_read_headers,
73
63
connection<Tag,Handler>::shared_from_this (),
74
64
boost::asio::placeholders::error,
@@ -83,14 +73,14 @@ namespace boost { namespace network { namespace http {
83
73
struct is_content_length {
84
74
template <class Header >
85
75
bool operator ()(Headerconst & header) {
86
- return to_lower_copy (header.name ) ==" content-length" ;
76
+ return boost:: to_lower_copy (header.name ) ==" content-length" ;
87
77
}
88
78
};
89
79
90
- void handle_read_headers (system::error_codeconst &ec,size_t bytes_transferred) {
80
+ void handle_read_headers (boost:: system::error_codeconst &ec,size_t bytes_transferred) {
91
81
if (!ec) {
92
- tribool done;
93
- array<char , BOOST_HTTP_SERVER_BUFFER_SIZE>::iterator new_start;
82
+ boost:: tribool done;
83
+ boost:: array<char , BOOST_HTTP_SERVER_BUFFER_SIZE>::iterator new_start;
94
84
tie (done,new_start) = parser_.parse_headers (request_, buffer_.data (), buffer_.data () + bytes_transferred);
95
85
if (done) {
96
86
if (request_.method [0 ] ==' P' ) {
@@ -107,7 +97,7 @@ namespace boost { namespace network { namespace http {
107
97
socket_,
108
98
response_.to_buffers (),
109
99
wrapper_.wrap (
110
- bind (
100
+ boost:: bind (
111
101
&connection<Tag,Handler>::handle_write,
112
102
connection<Tag,Handler>::shared_from_this (),
113
103
boost::asio::placeholders::error
@@ -127,7 +117,7 @@ namespace boost { namespace network { namespace http {
127
117
socket_,
128
118
response_.to_buffers (),
129
119
wrapper_.wrap (
130
- bind (
120
+ boost:: bind (
131
121
&connection<Tag,Handler>::handle_write,
132
122
connection<Tag,Handler>::shared_from_this (),
133
123
boost::asio::placeholders::error
@@ -146,7 +136,7 @@ namespace boost { namespace network { namespace http {
146
136
socket_.async_read_some (
147
137
boost::asio::buffer (buffer_),
148
138
wrapper_.wrap (
149
- bind (
139
+ boost:: bind (
150
140
&connection<Tag,Handler>::handle_read_body_contents,
151
141
connection<Tag,Handler>::shared_from_this (),
152
142
boost::asio::placeholders::error,
@@ -164,7 +154,7 @@ namespace boost { namespace network { namespace http {
164
154
socket_,
165
155
response_.to_buffers (),
166
156
wrapper_.wrap (
167
- bind (
157
+ boost:: bind (
168
158
&connection<Tag,Handler>::handle_write,
169
159
connection<Tag,Handler>::shared_from_this (),
170
160
boost::asio::placeholders::error
@@ -177,7 +167,7 @@ namespace boost { namespace network { namespace http {
177
167
socket_,
178
168
response_.to_buffers (),
179
169
wrapper_.wrap (
180
- bind (
170
+ boost:: bind (
181
171
&connection<Tag,Handler>::handle_write,
182
172
connection<Tag,Handler>::shared_from_this (),
183
173
boost::asio::placeholders::error
@@ -191,7 +181,7 @@ namespace boost { namespace network { namespace http {
191
181
socket_,
192
182
response_.to_buffers (),
193
183
wrapper_.wrap (
194
- bind (
184
+ boost:: bind (
195
185
&connection<Tag,Handler>::handle_write,
196
186
connection<Tag,Handler>::shared_from_this (),
197
187
boost::asio::placeholders::error
@@ -202,7 +192,7 @@ namespace boost { namespace network { namespace http {
202
192
socket_.async_read_some (
203
193
boost::asio::buffer (buffer_),
204
194
wrapper_.wrap (
205
- bind (
195
+ boost:: bind (
206
196
&connection<Tag,Handler>::handle_read_headers,
207
197
connection<Tag,Handler>::shared_from_this (),
208
198
boost::asio::placeholders::error,
@@ -218,7 +208,7 @@ namespace boost { namespace network { namespace http {
218
208
void handle_read_body_contents (boost::system::error_codeconst & ec,size_t bytes_to_read,size_t bytes_transferred) {
219
209
if (!ec) {
220
210
size_t difference = bytes_to_read - bytes_transferred;
221
- array<char ,BOOST_HTTP_SERVER_BUFFER_SIZE>::iterator start = buffer_.begin (),
211
+ boost:: array<char ,BOOST_HTTP_SERVER_BUFFER_SIZE>::iterator start = buffer_.begin (),
222
212
past_end = start;
223
213
std::advance (past_end, (std::min)(bytes_to_read,bytes_transferred));
224
214
request_.body .append (buffer_.begin (), past_end);
@@ -228,7 +218,7 @@ namespace boost { namespace network { namespace http {
228
218
socket_,
229
219
response_.to_buffers (),
230
220
wrapper_.wrap (
231
- bind (
221
+ boost:: bind (
232
222
&connection<Tag,Handler>::handle_write,
233
223
connection<Tag,Handler>::shared_from_this (),
234
224
boost::asio::placeholders::error
@@ -239,7 +229,7 @@ namespace boost { namespace network { namespace http {
239
229
socket_.async_read_some (
240
230
boost::asio::buffer (buffer_),
241
231
wrapper_.wrap (
242
- bind (
232
+ boost:: bind (
243
233
&connection<Tag,Handler>::handle_read_body_contents,
244
234
connection<Tag,Handler>::shared_from_this (),
245
235
boost::asio::placeholders::error,
@@ -255,17 +245,18 @@ namespace boost { namespace network { namespace http {
255
245
256
246
void handle_write (boost::system::error_codeconst & ec) {
257
247
if (!ec) {
248
+ using boost::asio::ip::tcp;
258
249
boost::system::error_code ignored_ec;
259
250
socket_.shutdown (tcp::socket::shutdown_both, ignored_ec);
260
251
socket_.close (ignored_ec);
261
252
}
262
253
}
263
254
264
- io_service & service_;
255
+ boost::asio:: io_service & service_;
265
256
Handler & handler_;
266
- tcp::socket socket_;
267
- io_service::strand wrapper_;
268
- array<char ,BOOST_HTTP_SERVER_BUFFER_SIZE> buffer_;
257
+ boost::asio::ip:: tcp::socket socket_;
258
+ boost::asio:: io_service::strand wrapper_;
259
+ boost:: array<char ,BOOST_HTTP_SERVER_BUFFER_SIZE> buffer_;
269
260
request_parser parser_;
270
261
basic_request<Tag> request_;
271
262
basic_response<Tag> response_;