@@ -172,6 +172,70 @@ Constructor
172
172
``std::string const & `` and handler being of type ``handler_type `` but
173
173
passed in as an lvalue reference.
174
174
175
+ ``template <class ArgPack> client(ArgPack const & args) ``
176
+ Pass in an argument pack. See supported parameters in the table below.
177
+
178
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
179
+ | Parameter Name| Type| Description|
180
+ +========================+==========================================+==================================================================================================+
181
+ | _address| string_type| The hostname or IP address from which the server should be bound to. This parameter is required.|
182
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
183
+ | _port| string_type| The port to which the server should bind and listen to. This parameter is required.|
184
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
185
+ | _handler| ``Handler & ``| An lvalue reference to an instance of ``Handler ``. This parameter is required.|
186
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
187
+ | _thread_pool| ``boost::network::utils::thread_pool & ``| An lvalue reference to an instance of ``boost::network::utils::thread_pool `` -- this is the|
188
+ | | | thread pool from where the handler is invoked. This parameter is only applicable and required|
189
+ | | | for ``async_server `` instances.|
190
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
191
+ | _io_service| ``boost::asio::io_service & ``| An optional lvalue to an instance of ``boost::asio::io_service `` which allows the server to use|
192
+ | | | an already-constructed ``boost::asio::io_service `` instance instead of instantiating one that it|
193
+ | | | manages.|
194
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
195
+ | _reuse_address| ``bool ``| A boolean that specifies whether to re-use the address and port on which the server will be|
196
+ | | | bound to. This enables or disables the socket option for listener sockets. The default is|
197
+ | | | ``false ``.|
198
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
199
+ | _report_aborted| ``bool ``| A boolean that specifies whether the listening socket should report aborted connection attempts|
200
+ | | | to the accept handler (an internal detail of cpp-netlib). This is put in place to allow for|
201
+ | | | future-proofing the code in case an optional error handler function is supported in later|
202
+ | | | releases of cpp-netlib. The default is ``false ``.|
203
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
204
+ | _receive_buffer_size| ``int ``| The size of the socket's receive buffer. The default is defined by Boost.Asio and is|
205
+ | | | platform-dependent.|
206
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
207
+ | _send_buffer_size| ``int ``| The size of the socket's send buffer. The default is defined by Boost.Asio and is|
208
+ | | | platform-dependent.|
209
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
210
+ | _receive_low_watermark| ``int ``| The size of the socket's low watermark for its receive buffer. The default is defined by|
211
+ | | | Boost.Asio and is platform-dependent.|
212
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
213
+ | _send_buffer_size| ``int ``| The size of the socket's send low watermark for its send buffer. The default is defined by|
214
+ | | | Boost.Asio and is platform-dependent.|
215
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
216
+ | _non_blocking_io| ``bool ``| An optional bool to define whether the socket should use non-blocking I/O in case the platform|
217
+ | | | supports it. The default is ``true ``.|
218
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
219
+ | _linger| ``bool ``| An optional bool to determine whether the socket should linger in case there's still data to be|
220
+ | | | sent out at the time of its closing. The default is ``true ``.|
221
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
222
+ | _linger_timeout| ``int ``| An optional int to define the timeout to wait for socket closes before it is set to linger.|
223
+ | | | The default is ``0 ``.|
224
+ +------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+
225
+
226
+ To use the above supported named parameters, you'll have code that looks like the following:
227
+
228
+ ..code-block ::c++
229
+
230
+ using namespace boost::network: :http; // parameters are in this namespace
231
+ boost::asio: :io_service my_io_service;
232
+ boost::network::utils: :thread_pool pool(2);
233
+ handler handler_instance;
234
+ async_server<handler> instance(_address="0.0.0.0", _port="80", _handler=handler_instance,
235
+ _io_service=my_io_service, _thread_pool=pool,
236
+ _reuse_address=true);
237
+ instance.run();
238
+
175
239
Public Members
176
240
``````````````
177
241