2 * @brief Config class header. This class represents the actual configuration.
6 * @copyright Intra2net AG
16 #include "serviceholder.hpp"
17 #include "httphelper.hpp"
18 #include "service.hpp"
20 #include <boost/program_options.hpp>
21 #include <boost/shared_ptr.hpp>
29 boost::shared_ptr<boost::program_options::options_description> OptDescCmd;
30 boost::shared_ptr<boost::program_options::options_description> OptDescConfMain;
31 boost::shared_ptr<boost::program_options::options_description> OptDescConfService;
32 boost::program_options::variables_map VariablesMap;
35 Serviceholder::Ptr ServiceHolder;
41 std::string ConfigPath;
42 std::string WebcheckIpUrl;
43 std::string WebcheckIpUrlAlt;
47 std::string ExternalWarningLog;
48 int ExternalWarningLevel;
51 bool ExternalLogOnlyOnce;
53 Service::Ptr create_service(const std::string& protocol, const std::string& server, const std::string& hostname, const std::string& login, const std::string& password, const int update_interval, const int max_updates_within_interval, const int dns_cache_ttl);
54 int load_main_config_file(const std::string& full_filename);
55 int load_service_config_file(const std::string& full_filename);
59 typedef boost::shared_ptr<Config> Ptr;
63 Config(Logger::Ptr _log, Serviceholder::Ptr _serviceholder);
67 int parse_cmd_line(int argc, char *argv[]);
69 int load_config_from_files();
71 boost::shared_ptr<boost::program_options::options_description> get_opt_desc_cmd() const;
73 boost::shared_ptr<boost::program_options::options_description> get_opt_desc_conf_main() const;
75 boost::shared_ptr<boost::program_options::options_description> get_opt_desc_conf_service() const;
77 bool get_daemon_mode() const;
79 int get_loglevel() const;
81 bool get_syslog() const;
83 bool get_enable_ipv6() const;
85 std::string get_proxy() const;
87 int get_proxy_port() const;
89 bool get_webcheck_enabled() const;
91 void set_webcheck_enabled( bool webcheck_enabled );
93 std::string get_webcheck_ip_url() const;
95 std::string get_webcheck_ip_url_alt() const;
97 int get_webcheck_interval() const;
99 void delete_variables_map();
101 int get_external_warning_level() const;
103 std::string get_external_warning_log() const;
105 bool get_start_offline() const;
107 bool get_external_log_only_once() const;