From 7f3ced8caf52b6eef7681600028fbf7a9f97b180 Mon Sep 17 00:00:00 2001 From: Bjoern Sikora Date: Fri, 7 Aug 2009 16:38:28 +0200 Subject: [PATCH] Replaced Options_description * with shared_ptr. --- src/config.cpp | 21 ++++++++++++--------- src/config.h | 13 +++++++------ src/logger.cpp | 2 +- src/logger.h | 4 +++- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index ba66d71..cb6769f 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -57,17 +57,23 @@ Config::Config(LoggerPtr _log) ; // Define valid command line parameters - Opt_desc_cmd = new po::options_description("Command line options"); + Options_descriptionPtr _opt_desc_cmd(new po::options_description("Command line options")); + Opt_desc_cmd = _opt_desc_cmd; + _opt_desc_cmd.reset(); Opt_desc_cmd->add(opt_desc_cmd_only); Opt_desc_cmd->add(opt_desc_generic); Opt_desc_cmd->add(opt_desc_service); // Define valid config file options - Opt_desc_conf_main = new po::options_description("Config file options"); + Options_descriptionPtr _opt_desc_conf_main(new po::options_description("Config file options")); + Opt_desc_conf_main = _opt_desc_conf_main; + _opt_desc_conf_main.reset(); Opt_desc_conf_main->add(opt_desc_generic); // Define valid service file options - Opt_desc_conf_service = new po::options_description("Service file options"); + Options_descriptionPtr _opt_desc_conf_service(new po::options_description("Service file options")); + Opt_desc_conf_service = _opt_desc_conf_service; + _opt_desc_conf_service.reset(); Opt_desc_conf_service->add(opt_desc_service); } @@ -77,9 +83,6 @@ Config::Config(LoggerPtr _log) */ Config::~Config() { - delete Opt_desc_cmd; - delete Opt_desc_conf_main; - delete Opt_desc_conf_service; } @@ -422,7 +425,7 @@ list Config::get_services() * Getter method for member Opt_desc_cmd. * @return options_description*. */ -po::options_description* Config::get_opt_desc_cmd() +Options_descriptionPtr Config::get_opt_desc_cmd() { return Opt_desc_cmd; } @@ -432,7 +435,7 @@ po::options_description* Config::get_opt_desc_cmd() * Getter method for member Opt_desc_conf_main. * @return options_description*. */ -po::options_description* Config::get_opt_desc_conf_main() +Options_descriptionPtr Config::get_opt_desc_conf_main() { return Opt_desc_conf_main; } @@ -442,7 +445,7 @@ po::options_description* Config::get_opt_desc_conf_main() * Getter method for member Opt_desc_conf_service. * @return options_description*. */ -po::options_description* Config::get_opt_desc_conf_service() +Options_descriptionPtr Config::get_opt_desc_conf_service() { return Opt_desc_conf_service; } diff --git a/src/config.h b/src/config.h index 9db00db..9bd6645 100644 --- a/src/config.h +++ b/src/config.h @@ -34,15 +34,16 @@ typedef boost::shared_ptr ServicePtr; typedef boost::shared_ptr LoggerPtr; typedef boost::shared_ptr ServiceholderPtr; +typedef boost::shared_ptr Options_descriptionPtr; class Config { private: - boost::program_options::options_description *Opt_desc_cmd; - boost::program_options::options_description *Opt_desc_conf_main; - boost::program_options::options_description *Opt_desc_conf_service; + Options_descriptionPtr Opt_desc_cmd; + Options_descriptionPtr Opt_desc_conf_main; + Options_descriptionPtr Opt_desc_conf_service; boost::program_options::variables_map Variables_map; std::list Services; @@ -73,11 +74,11 @@ public: std::list get_services(); - boost::program_options::options_description* get_opt_desc_cmd(); + Options_descriptionPtr get_opt_desc_cmd(); - boost::program_options::options_description* get_opt_desc_conf_main(); + Options_descriptionPtr get_opt_desc_conf_main(); - boost::program_options::options_description* get_opt_desc_conf_service(); + Options_descriptionPtr get_opt_desc_conf_service(); bool get_daemon_mode(); diff --git a/src/logger.cpp b/src/logger.cpp index 5cc26d0..ae5b97a 100644 --- a/src/logger.cpp +++ b/src/logger.cpp @@ -129,7 +129,7 @@ void Logger::set_log_facility(const int _loglevel, const bool _syslog) /** * Prints out the usage to the command line. */ -void Logger::print_usage(const po::options_description* opt_desc) +void Logger::print_usage(const Options_descriptionPtr opt_desc) { if ( 0 <= Loglevel ) { diff --git a/src/logger.h b/src/logger.h index 6435a1d..d3642f2 100644 --- a/src/logger.h +++ b/src/logger.h @@ -13,6 +13,8 @@ #include #include +typedef boost::shared_ptr Options_descriptionPtr; + class Logger { @@ -42,7 +44,7 @@ public: void set_log_facility(const int, const bool); - void print_usage(const boost::program_options::options_description*); + void print_usage(const Options_descriptionPtr); void print_version(); -- 1.7.1