Line data Source code
1 : // 2 : // Copyright (c) 2017 Juniper Networks, Inc. All rights reserved. 3 : // Copyright Contributors to the OpenSDN project 4 : // 5 : 6 : #ifndef LIBRARY_CPP_SANDESH_OPTIONS_H_ 7 : #define LIBRARY_CPP_SANDESH_OPTIONS_H_ 8 : 9 : #include <boost/program_options.hpp> 10 : 11 : #include <sandesh/sandesh_constants.h> 12 : 13 : struct SandeshConfig { 14 429 : SandeshConfig() : 15 429 : http_server_ip(), 16 429 : keyfile(), 17 429 : certfile(), 18 429 : server_keyfile(), 19 429 : server_certfile(), 20 429 : ca_cert(), 21 429 : stats_collector(), 22 429 : sandesh_ssl_enable(false), 23 429 : introspect_ssl_enable(false), 24 429 : introspect_ssl_insecure(false), 25 429 : disable_object_logs(false), 26 429 : tcp_keepalive_enable(true), 27 429 : tcp_keepalive_idle_time(7200), 28 429 : tcp_keepalive_probes(9), 29 429 : tcp_keepalive_interval(75), 30 429 : system_logs_rate_limit( 31 429 : g_sandesh_constants.DEFAULT_SANDESH_SEND_RATELIMIT) { 32 429 : } 33 429 : ~SandeshConfig() { 34 429 : } 35 : 36 : std::string http_server_ip; 37 : std::string keyfile; 38 : std::string certfile; 39 : std::string server_keyfile; 40 : std::string server_certfile; 41 : std::string ca_cert; 42 : std::string stats_collector; 43 : bool sandesh_ssl_enable; 44 : bool introspect_ssl_enable; 45 : bool introspect_ssl_insecure; 46 : bool disable_object_logs; 47 : bool tcp_keepalive_enable; 48 : int tcp_keepalive_idle_time; 49 : int tcp_keepalive_probes; 50 : int tcp_keepalive_interval; 51 : uint32_t system_logs_rate_limit; 52 : }; 53 : 54 : namespace sandesh { 55 : namespace options { 56 : 57 : void AddOptions(boost::program_options::options_description *sandesh_options, 58 : SandeshConfig *sandesh_config); 59 : void ProcessOptions(const boost::program_options::variables_map &var_map, 60 : SandeshConfig *sandesh_config); 61 : 62 : } // namespace options 63 : } // namespace sandesh 64 : 65 : #endif // LIBRARY_CPP_SANDESH_OPTIONS_H_