28 #include <boost/program_options.hpp>
29 #include <boost/filesystem.hpp>
30 #include <boost/tokenizer.hpp>
31 #include "../types.hpp"
32 #include "../error/exceptions.hpp"
33 #include "config_option.hpp"
34 #include "config_argument.hpp"
37 namespace popts = boost::program_options;
62 popts::positional_options_description
_oargs;
77 return boost::lexical_cast<
string>(v);
98 "Default value container is empty!");
100 return boost::lexical_cast<
string>(v[0]);
112 std::ostream &
print(std::ostream &o)
const;
158 const popts::positional_options_description &
arguments()
const
172 const popts::variables_map &
map()
const
204 template<
typename T> T
value(
const string &name)
const
206 if(
has_option(name))
return _vmap[name].as<T>();
209 "Program option ["+name+
"] not passed or "
210 "inappropriate value!");
222 typedef boost::shared_ptr<popts::option_description> option_sptr;
236 option_sptr option_ptr (
new popts::option_description(oname.c_str(),
241 _visible_opts.add(option_ptr);
243 _hidden_opts.add(option_ptr);
269 typedef boost::shared_ptr<popts::option_description> option_sptr;
277 option_sptr option_ptr (
new popts::option_description(oname.c_str(),
281 _hidden_opts.add(option_ptr);
class describing a program option
Definition: config_option.hpp:47
popts::options_description _hidden_opts
options hidden in the help output
Definition: configuration/configuration.hpp:59
string default_value_string(const std::vector< T > &v)
get default value string
Definition: configuration/configuration.hpp:94
string default_value_string(const T &v)
get default value string
Definition: configuration/configuration.hpp:75
const popts::options_description & visible_options() const
get visible options
Definition: configuration/configuration.hpp:134
T value(const string &name) const
return the value of an option
Definition: configuration/configuration.hpp:204
popts::positional_options_description _oargs
positional arguments description
Definition: configuration/configuration.hpp:62
const popts::positional_options_description & arguments() const
get arguments
Definition: configuration/configuration.hpp:158
bool has_option(const string &name) const
check if option is there
popts::options_description _visible_opts
options visible in the help
Definition: configuration/configuration.hpp:56
#define EXCEPTION_RECORD
macro creating an instance of ExceptionRecord
Definition: exceptions.hpp:48
class describing a program argument
Definition: config_argument.hpp:50
friend std::ostream & operator<<(std::ostream &o, const configuration &c)
output operator
string long_name() const
get long name
Definition: config_option.hpp:105
configuration class
Definition: configuration/configuration.hpp:49
configuration()
default constructor
bool has_default() const
check if option has a default value
Definition: config_option.hpp:125
std::ostream & print(std::ostream &o) const
print options
index error
Definition: exceptions.hpp:437
Definition: add_op.hpp:29
void add_option(const config_option< T > &opt, bool visible=true)
add a program option
Definition: configuration/configuration.hpp:220
string short_name() const
get short name
Definition: config_option.hpp:109
const popts::variables_map & map() const
get variables map
Definition: configuration/configuration.hpp:172
const T * external_reference() const
get external refernce
Definition: config_option.hpp:121
int position() const
get short name
Definition: config_argument.hpp:89
command line option error
Definition: exceptions.hpp:766
popts::variables_map _vmap
stores the program options
Definition: configuration/configuration.hpp:53
T default_value() const
get default value
Definition: config_option.hpp:117
void add_argument(const config_argument< T > &arg)
add argument
Definition: configuration/configuration.hpp:267
type erasure for POD data
Definition: value.hpp:46
const popts::options_description & hidden_options() const
get hidden options
Definition: configuration/configuration.hpp:145
string description() const
get description
Definition: config_option.hpp:113
~configuration()
destructor
Definition: configuration/configuration.hpp:126