Replaced Options_description * with shared_ptr.
authorBjoern Sikora <bjoern.sikora@intra2net.com>
Fri, 7 Aug 2009 14:38:28 +0000 (16:38 +0200)
committerBjoern Sikora <bjoern.sikora@intra2net.com>
Fri, 7 Aug 2009 14:38:28 +0000 (16:38 +0200)
src/config.cpp
src/config.h
src/logger.cpp
src/logger.h

index ba66d71..cb6769f 100644 (file)
@@ -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<ServicePtr> 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;
 }
index 9db00db..9bd6645 100644 (file)
 typedef boost::shared_ptr<Service> ServicePtr;
 typedef boost::shared_ptr<Logger> LoggerPtr;
 typedef boost::shared_ptr<Serviceholder> ServiceholderPtr;
+typedef boost::shared_ptr<boost::program_options::options_description> 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<ServicePtr> Services;
@@ -73,11 +74,11 @@ public:
 
     std::list<ServicePtr> 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();
 
index 5cc26d0..ae5b97a 100644 (file)
@@ -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 )
     {
index 6435a1d..d3642f2 100644 (file)
@@ -13,6 +13,8 @@
 #include <syslog.h>
 #include <sstream>
 
+typedef boost::shared_ptr<boost::program_options::options_description> 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();