24#ifndef _UTILS_SYSTEM_ARGPARSER_H_
25#define _UTILS_SYSTEM_ARGPARSER_H_
27#include <core/exception.h>
28#include <utils/misc/string_compare.h>
46 append(
"Unknown option '%c'", c);
59 append(
"Option '%c' requires an argument", c);
70 const char *
arg(
const char *argn);
71 bool arg(
const char *argn,
char **value);
74 bool parse_hostport(
const char *argn,
char **host,
unsigned short int *port);
75 bool parse_hostport(
const char *argn, std::string &host,
unsigned short int &port);
77 static void parse_hostport_s(
const char *s,
char **host,
unsigned short int *port);
78 static void parse_hostport_s(
const char *s, 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;
90 const char **
argv()
const;
109 std::map<std::string, const char *> opts_;
110 std::map<std::string, const char *> opts_cit_;
111 std::vector<const char *> items_;
113 char * program_name_;
117 std::string opt_string_;
118 std::vector<option> long_opts_;
Parse command line arguments.
int argc() const
Get number of arguments.
const char * program_name() const
Get name of program.
~ArgumentParser()
Destructor.
double parse_item_float(unsigned int index)
Parse item as double.
ArgumentParser(int argc, char **argv, const char *opt_string, option *long_options=NULL)
Constructor.
const std::vector< const char * > & items() const
Get non-option items.
static void parse_hostport_s(const char *s, char **host, unsigned short int *port)
Parse host:port string.
const char * arg(const char *argn)
Get argument value.
bool parse_hostport(const char *argn, char **host, unsigned short int *port)
Parse host:port string.
std::vector< option > get_long_opts() const
Get long option configuration.
std::vector< constchar * >::size_type num_items() const
Get number of non-option items.
const char ** argv() const
Program argument array as supplied to constructor.
double parse_float(const char *argn)
Parse argument as double.
long int parse_int(const char *argn)
Parse argument as integer.
std::string get_optstring() const
Get option string.
long int parse_item_int(unsigned int index)
Parse item as integer.
bool has_arg(const char *argn)
Check if argument has been supplied.
Base class for exceptions in Fawkes.
void append(const char *format,...) noexcept
Append messages to the message list.
Thrown if required argument was missing.
MissingArgumentException(char c)
Constructor.
Thrown if unknown argument was supplied.
UnknownArgumentException(char c)
Constructor.
Fawkes library namespace.