diff --git a/include/transport/config.h b/include/transport/config.h index 4ff5b8fa079f1470b405ebffa8a072a6031d4f66..903480e953056b23a3106b3d4ee2ca7abb89a56c 100644 --- a/include/transport/config.h +++ b/include/transport/config.h @@ -28,13 +28,13 @@ #include #include - +#define CONFIG_HAS_KEY(PTR, KEY) (*PTR).hasKey(KEY) #define CONFIG_STRING(PTR, KEY) (*PTR)[KEY].as() #define CONFIG_INT(PTR, KEY) (*PTR)[KEY].as() #define CONFIG_BOOL(PTR, KEY) (*PTR)[KEY].as() #define CONFIG_LIST(PTR, KEY) (*PTR)[KEY].as >() -#define CONFIG_VECTOR(PTR, KEY) (*PTR)[KEY].as >() -#define CONFIG_HAS_KEY(PTR, KEY) (*PTR).hasKey(KEY) +#define CONFIG_VECTOR(PTR, KEY) ((*PTR).hasKey(KEY) ? (*PTR)[KEY].as >() : std::vector()) + namespace Transport { @@ -50,7 +50,7 @@ typedef boost::program_options::variables_map Variables; class Config { public: /// Constructor. - Config() {} + Config(int argc = 0, char **argv = NULL) : m_argc(argc), m_argv(argv) {} /// Destructor virtual ~Config() {} @@ -99,6 +99,8 @@ class Config { boost::signal onConfigReloaded; private: + int m_argc; + char **m_argv; Variables m_variables; std::map m_unregistered; std::string m_file;