@@ -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
0 commit comments