11 #ifndef __ARGPARSER_H__
12 #define __ARGPARSER_H__
14 #include "tools/ToolsConfig.h"
15 #include "tools/NoCopy.h"
85 const char *_args_info;
86 const char *_progname;
88 char const *
const *_argv;
89 stdList<CmdArg *> _options;
90 stdVector<const char *> _args;
107 const char *arguments,
108 const char *description);
124 void usage(
size_t tab)
const;
131 virtual size_t parse(
const char *arg) = 0;
135 PROHIBIT_DEFAULT_COPY(
CmdArg);
137 const char *_arguments;
138 const char *_description;
147 const char *option,
const char *description);
150 operator bool()
const;
156 virtual size_t parse(
const char *arg);
172 const char *argument_name,
const char *description);
178 operator int()
const;
183 virtual size_t parse(
const char *arg);
195 const char *argument_name,
const char *description);
198 void set(
double value);
201 operator double()
const;
203 virtual size_t parse(
const char *arg);
214 const char *argument_name,
const char *description);
217 void set(
const stdString &value);
220 operator const stdString &()
const;
223 const stdString &
get()
const;
228 virtual size_t parse(
const char *arg);
239 { _header = header; }
242 { _footer = footer; }
245 { _args_info = args_info; }
254 inline CmdArgFlag::operator bool()
const
260 inline CmdArgInt::operator int()
const
269 inline CmdArgDouble::operator double()
const
275 inline CmdArgString::operator
const stdString &()
const
282 {
return _value.length() > 0; }
285 #endif // __ARGPARSER_H__
int get() const
Get the value.
Definition: ArgParser.h:263
virtual size_t parse(const char *arg)=0
Parse arguments from current option.
void set(double value)
Set the default.
Definition: ArgParser.h:266
void set(const stdString &value)
Set the default.
Definition: ArgParser.h:272
CmdArgString(CmdArgParser &args, const char *option, const char *argument_name, const char *description)
void usage_option() const
Show info on option for command line.
Implements a string-typed argument.
Definition: ArgParser.h:209
Imlpement an integer-typed argument.
Definition: ArgParser.h:163
void usage()
Print out usage based on all registered CmdArgxxx classes.
virtual size_t parse(const char *arg)
Parse arguments from current option.
size_t option_size() const
Get string length of option w/o description.
Base class for all arguments.
Definition: ArgParser.h:97
virtual size_t parse(const char *arg)
Parse arguments from current option.
CmdArgDouble(CmdArgParser &args, const char *option, const char *argument_name, const char *description)
CmdArgInt(CmdArgParser &args, const char *option, const char *argument_name, const char *description)
Create the argument:
Implements a boolean argument.
Definition: ArgParser.h:142
void setArgumentsInfo(const char *args_info)
Description for remaining arguments (other than options)
Definition: ArgParser.h:244
void usage(size_t tab) const
Show option description.
size_t findMatches(const char *option) const
Called with option (minus '-'), determine how many characters match.
General purpose argument parser for command-line programs.
Definition: ArgParser.h:48
void addOption(CmdArg *option)
Add option.
virtual size_t parse(const char *arg)
Parse arguments from current option.
void setFooter(const char *footer)
Set additional footer text (default: nothing).
Definition: ArgParser.h:241
const char * getArgument(size_t i)
Get a single one of the remaining arguments.
Definition: ArgParser.h:250
CmdArgFlag(CmdArgParser &args, const char *option, const char *description)
Create optional boolean argument: option and description.
void set(bool value=true)
Set the default value.
Definition: ArgParser.h:153
const stdVector< const char * > & getArguments()
Remaining arguments (all that didn't start with '-')
Definition: ArgParser.h:247
void set(int value)
Set the default.
Definition: ArgParser.h:257
CmdArg(CmdArgParser &args, const char *option, const char *arguments, const char *description)
All arguments follow this schema:
void setHeader(const char *header)
Set additional header text (default: nothing).
Definition: ArgParser.h:238
virtual size_t parse(const char *arg)
Parse arguments from current option.
bool parse()
Parse Arguments,.
Implements a double-typed argument.
Definition: ArgParser.h:190
const stdString & get() const
Get the value.
Definition: ArgParser.h:278
bool isSet() const
Was option provided?
Definition: ArgParser.h:281
CmdArgParser(int argc, char const *const *argv)
Initialize CmdArgParser with main's argc/argv.