@@ -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