5 #include <boost/program_options.hpp>
9 #include <fc/reflect/reflect.hpp>
15 const std::string _api_name;
17 uint32_t _max_blockchain_history_depth = 100;
18 uint32_t _max_blocks_history_depth = 100;
19 uint32_t _max_budgets_list_size = 100;
20 uint32_t _max_discussions_list_size = 100;
21 uint32_t _lookup_limit = 1000;
22 uint32_t _tags_to_analize_count = 8;
23 uint32_t _max_timestamp_range_in_s = 60 * 30;
35 void set_options(
const boost::program_options::variables_map& options);
48 static const std::string default_api_name;
52 template <
typename MemberType>
53 void get_option_description(boost::program_options::options_description_easy_init&,
const char* member_name)
const;
54 template <
typename MemberType>
55 void set_option(
const boost::program_options::variables_map&, MemberType&,
const char* member_name);
57 std::string get_option_name(
const char* field,
const std::string&
api_name)
const;
58 std::string get_option_description(
const char* field)
const;
60 using configs_by_api_type = std::map<std::string, std::unique_ptr<config_api>>;
61 static configs_by_api_type _instances_by_api;
67 #define MAX_BLOCKCHAIN_HISTORY_DEPTH (get_api_config().max_blockchain_history_depth)
68 #define MAX_BLOCKS_HISTORY_DEPTH (get_api_config().max_blocks_history_depth)
69 #define MAX_BUDGETS_LIST_SIZE (get_api_config().max_budgets_list_size)
70 #define MAX_DISCUSSIONS_LIST_SIZE (get_api_config().max_discussions_list_size)
71 #define LOOKUP_LIMIT (get_api_config().lookup_limit)
72 #define TAGS_TO_ANALIZE_COUNT (get_api_config().tags_to_analize_count)
73 #define MAX_TIMESTAMP_RANGE_IN_S (get_api_config().max_timestamp_range_in_s)
void set_options(const boost::program_options::variables_map &options)
const uint32_t & max_timestamp_range_in_s
boost::program_options::options_description get_options_descriptions() const
const uint32_t & max_blocks_history_depth
const std::string & api_name() const
const uint32_t & tags_to_analize_count
const uint32_t & max_budgets_list_size
const uint32_t & lookup_limit
friend config_api & get_api_config(std::string api_name)
const uint32_t & max_discussions_list_size
const uint32_t & max_blockchain_history_depth
config_api & get_api_config(std::string api_name)