1 #ifndef QPID_COMMONOPTIONS_H
2 #define QPID_COMMONOPTIONS_H
29 # pragma warning(push)
30 # pragma warning(disable : 4251 4275)
33 #include <boost/program_options.hpp>
34 #include <boost/format.hpp>
47 namespace po=boost::program_options;
59 : po::typed_value<T>(&value), argName(arg) {}
60 std::string
name()
const {
return argName; }
74 po::value_semantic*
optValue(T& value,
const char* name) {
75 std::string valstr(boost::lexical_cast<std::string>(value));
83 po::value_semantic*
optValue(std::vector<T>& value,
const char* name) {
84 std::ostringstream os;
85 std::copy(value.begin(), value.end(), std::ostream_iterator<T>(os,
" "));
86 std::string val=os.str();
88 val.erase(val.end()-1);
93 inline po::value_semantic*
optValue(
bool& value) {
94 #if (BOOST_VERSION >= 103500)
97 return po::bool_switch(&value);
102 return po::bool_switch(&value);
145 struct Options :
public po::options_description {
159 const std::string& configfile=std::string(),
160 bool allowUnknown =
false);
166 const std::string& theArg);
168 boost::program_options::options_description_easy_init
addOptions() {
169 return add_options();
180 const std::string& configfile=std::string(),
181 const std::string& clientConfigFile=std::string());
po::value_semantic * pure_switch(bool &value)
CommonOptions(const std::string &name=std::string(), const std::string &configfile=std::string(), const std::string &clientConfigFile=std::string())
void parse(int argc, char const *const *argv, const std::string &configfile=std::string(), bool allowUnknown=false)
Parses options from argc/argv, environment variables and config file.
po::value_semantic * optValue(T &value, const char *name)
Create an option value.
bool findArg(int argc, char const *const *argv, const std::string &theArg)
Tests for presence of argc/argv switch.
Exception(const std::string &msg)
std::string prettyArg(const std::string &, const std::string &)
boost::program_options::options_description_easy_init addOptions()
Standard options for configuration.
Options(const std::string &name=std::string())
#define QPID_COMMON_EXTERN
OptionValue(T &value, const std::string &arg)
Base class for Qpid runtime exceptions.