24 #ifndef __UTILS_SYSTEM_ARGPARSER_H_ 25 #define __UTILS_SYSTEM_ARGPARSER_H_ 27 #include <core/exception.h> 29 #include <utils/misc/string_compare.h> 48 append(
"Unknown option '%c'", c);
61 append(
"Option '%c' requires an argument", c);
70 const char *opt_string, option *long_options = NULL);
74 const char *
arg(
const char *argn);
75 bool arg(
const char *argn,
char **value);
78 bool parse_hostport(
const char *argn,
char **host,
unsigned short int *port);
79 bool parse_hostport(
const char *argn, std::string &host,
unsigned short int &port);
81 static void parse_hostport_s(
const char *s,
char **host,
unsigned short int *port);
82 static void parse_hostport_s(
const char *s, std::string &host,
unsigned short int &port);
90 const std::vector< const char * > &
items()
const;
91 std::vector< const char * >::size_type
num_items()
const;
95 const char **
argv()
const;
100 {
return __opt_string; }
105 {
return __long_opts; }
108 std::map<std::string, const char *> __opts;
109 std::map<std::string, const char *> __opts_cit;
110 std::vector< const char * > __items;
112 char * __program_name;
116 std::string __opt_string;
117 std::vector<option> __long_opts;
const char * program_name() const
Get name of program.
const char * arg(const char *argn)
Get argument value.
Thrown if required argument was missing.
bool parse_hostport(const char *argn, char **host, unsigned short int *port)
Parse host:port string.
double parse_float(const char *argn)
Parse argument as double.
const std::vector< const char *> & items() const
Get non-option items.
Fawkes library namespace.
double parse_item_float(unsigned int index)
Parse item as double.
Parse command line arguments.
const char ** argv() const
Program argument array as supplied to constructor.
long int parse_int(const char *argn)
Parse argument as integer.
ArgumentParser(int argc, char **argv, const char *opt_string, option *long_options=NULL)
Constructor.
std::vector< const char *>::size_type num_items() const
Get number of non-option items.
UnknownArgumentException(char c)
Constructor.
MissingArgumentException(char c)
Constructor.
Base class for exceptions in Fawkes.
int argc() const
Get number of arguments.
std::string get_optstring() const
Get option string.
~ArgumentParser()
Destructor.
std::vector< option > get_long_opts() const
Get long option configuration.
bool has_arg(const char *argn)
Check if argument has been supplied.
Thrown if unknown argument was supplied.
void append(const char *format,...)
Append messages to the message list.
static void parse_hostport_s(const char *s, char **host, unsigned short int *port)
Parse host:port string.
long int parse_item_int(unsigned int index)
Parse item as integer.