EPICS ARCHIVER V4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups
Public Member Functions | List of all members
CmdArgParser Class Reference

General purpose argument parser for command-line programs. More...

#include <ArgParser.h>

Public Member Functions

 CmdArgParser (int argc, char const *const *argv)
 Initialize CmdArgParser with main's argc/argv.
 
void addOption (CmdArg *option)
 Add option.
 
void usage ()
 Print out usage based on all registered CmdArgxxx classes.
 
void setHeader (const char *header)
 Set additional header text (default: nothing).
 
void setFooter (const char *footer)
 Set additional footer text (default: nothing).
 
void setArgumentsInfo (const char *args_info)
 Description for remaining arguments (other than options)
 
bool parse ()
 Parse Arguments,. More...
 
const stdVector< const char * > & getArguments ()
 Remaining arguments (all that didn't start with '-')
 
const char * getArgument (size_t i)
 Get a single one of the remaining arguments.
 

Detailed Description

General purpose argument parser for command-line programs.

Example usage:

* int main(int argc, const char *argv[])
* {
* CmdArgParser parser(argc, argv);
* parser.setHeader("ExampleProgram");
* parser.setArgumentsInfo("<filename>");
* CmdArgFlag debug(parser, "debug", "Enable debugging");
* CmdArgInt limit(parser, "limit", "<secs>", "Time limit in seconds");
* CmdArgString text(parser, "text", "<text>", "A string argument");
* limit.set(5); // default
* if (parser.parse() == false)
* return -1;
* if (parser.getArguments().size() != 1)
* {
* parser.usage();
* return -1;
* }
* stdString filename = parser.getArgument(0);
* if (debug)
* ...
* int time_limit = limit.get();
*

Member Function Documentation

bool CmdArgParser::parse ( )

Parse Arguments,.

Returns
false on error

The documentation for this class was generated from the following file: