@@ -172,6 +172,70 @@ Constructor
172172 ``std::string const &`` and handler being of type ``handler_type`` but
173173 passed in as an lvalue reference.
174174
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+
175239Public Members
176240``````````````
177241