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);
73 bool has_arg(
const char *argn);
74 const char * arg(
const char *argn);
75 bool arg(
const char *argn,
char **value);
76 const char * program_name()
const;
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);
84 long int parse_int(
const char *argn);
85 double parse_float(
const char *argn);
87 long int parse_item_int(
unsigned int index);
88 double parse_item_float(
unsigned int index);
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;
Thrown if required argument was missing.
Fawkes library namespace.
Parse command line arguments.
UnknownArgumentException(char c)
Constructor.
MissingArgumentException(char c)
Constructor.
Base class for exceptions in Fawkes.
std::string get_optstring() const
Get option string.
std::vector< option > get_long_opts() const
Get long option configuration.
Thrown if unknown argument was supplied.
void append(const char *format,...)
Append messages to the message list.