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);
86 const std::vector< const char * > &
items()
const;
87 std::vector< const char * >::size_type
num_items()
const;
91 const char **
argv()
const;
96 {
return __opt_string; }
101 {
return __long_opts; }
104 std::map<std::string, const char *> __opts;
105 std::map<std::string, const char *> __opts_cit;
106 std::vector< const char * > __items;
108 char * __program_name;
112 std::string __opt_string;
113 std::vector<option> __long_opts;