Line data Source code
1 : //
2 : // Author: Vladimir Migashko <migashko@gmail.com>, (C) 2013-2018
3 : //
4 : // Copyright: See COPYING file that comes with this distribution
5 : //
6 :
7 : #pragma once
8 :
9 : #include "server_tcp_config.hpp"
10 : #include <iow/ip/tcp/server/options_json.hpp>
11 : #include <wfc/json.hpp>
12 :
13 : namespace wfc{ namespace io{
14 :
15 : struct connection_options_json
16 : {
17 0 : JSON_NAME(direct_mode)
18 :
19 : typedef json::object<
20 : tcp_connection_options,
21 : json::member_list<
22 : json::member<n_direct_mode, tcp_connection_options, bool, &tcp_connection_options::direct_mode>,
23 : json::base< ::iow::ip::tcp::connection::options_json >
24 : >,
25 : json::strict_mode
26 : > type;
27 :
28 : typedef type::target target;
29 : typedef type::serializer serializer;
30 : typedef type::member_list member_list;
31 : };
32 :
33 :
34 : struct server_tcp_config_json
35 : {
36 : struct server_json: ::iow::ip::tcp::server::options_json<
37 : tcp_options,
38 : ::iow::ip::tcp::acceptor::options_json< tcp_acceptor_options, connection_options_json >
39 : > {};
40 :
41 0 : JSON_NAME(target)
42 0 : JSON_NAME(rn)
43 0 : JSON_NAME(keep_alive)
44 :
45 : typedef json::object<
46 : server_tcp_config,
47 : json::member_list<
48 : json::member<n_target, server_tcp_config, std::string, &server_tcp_config::target>,
49 : json::member<n_rn, server_tcp_config, bool, &server_tcp_config::rn>,
50 : json::member<n_keep_alive, server_tcp_config, bool, &server_tcp_config::keep_alive>,
51 : json::base< server_json >
52 : >,
53 : json::strict_mode
54 : > type;
55 :
56 : typedef type::target target;
57 : typedef type::serializer serializer;
58 : typedef type::member_list member_list;
59 : };
60 :
61 : }}
|