$search
Manages the command line parsing object. More...
#include <cmd_line.hpp>
Public Member Functions | |
void | add (Arg *a) |
void | add (Arg &a) |
CmdLine (const std::string &message, const char delimiter= ' ', const std::string &version="none", bool helpAndVersion=true) | |
std::list< Arg * > & | getArgList () |
char | getDelimiter () |
std::string & | getMessage () |
CmdLineOutput * | getOutput () |
std::string & | getProgramName () |
std::string & | getVersion () |
XorHandler & | getXorHandler () |
bool | hasHelpAndVersion () |
void | parse (int argc, char **argv) |
void | setOutput (CmdLineOutput *co) |
void | xorAdd (std::vector< Arg * > &xors) |
void | xorAdd (Arg &a, Arg &b) |
virtual | ~CmdLine () |
Protected Member Functions | |
bool | _emptyCombined (const std::string &s) |
void | deleteOnExit (Visitor *ptr) |
void | deleteOnExit (Arg *ptr) |
Protected Attributes | |
std::list< Arg * > | _argDeleteOnExitList |
std::list< Arg * > | _argList |
char | _delimiter |
std::string | _message |
int | _numRequired |
CmdLineOutput * | _output |
std::string | _progName |
std::string | _version |
std::list< Visitor * > | _visitorDeleteOnExitList |
XorHandler | _xorHandler |
Private Member Functions | |
void | _constructor () |
Private Attributes | |
bool | _helpAndVersion |
bool | _userSetOutput |
Manages the command line parsing object.
The base class that manages the command line definition and passes along the parsing to the appropriate Arg classes.
Definition at line 41 of file cmd_line.hpp.
ecl::CmdLine::CmdLine | ( | const std::string & | message, | |
const char | delimiter = ' ' , |
|||
const std::string & | version = "none" , |
|||
bool | helpAndVersion = true | |||
) | [inline] |
Command line constructor. Defines how the arguments will be parsed.
message | - The message to be used in the usage output. | |
delimiter | - The character that is used to separate the argument flag/name from the value. Defaults to ' ' (space). | |
version | - The version number to be used in the --version switch. | |
helpAndVersion | - Whether or not to create the Help and Version switches. Defaults to true. |
Definition at line 249 of file cmd_line.hpp.
ecl::CmdLine::~CmdLine | ( | ) | [inline, virtual] |
Deletes any resources allocated by a CmdLine object.
Definition at line 264 of file cmd_line.hpp.
void ecl::CmdLine::_constructor | ( | ) | [inline, private] |
Encapsulates the code common to the constructors (which is all of it).
Definition at line 283 of file cmd_line.hpp.
bool ecl::CmdLine::_emptyCombined | ( | const std::string & | s | ) | [inline, protected] |
Checks whether a name/flag string matches entirely matches the Arg::blankChar. Used when multiple switches are combined into a single argument.
s | - The message to be used in the usage. |
Definition at line 405 of file cmd_line.hpp.
void ecl::CmdLine::add | ( | Arg * | a | ) | [inline, virtual] |
An alternative add. Functionally identical.
a | - Argument to be added. |
Implements ecl::CmdLineInterface.
Definition at line 346 of file cmd_line.hpp.
void ecl::CmdLine::add | ( | Arg & | a | ) | [inline, virtual] |
Adds an argument to the list of arguments to be parsed.
a | - Argument to be added. |
Implements ecl::CmdLineInterface.
Definition at line 341 of file cmd_line.hpp.
void ecl::CmdLine::deleteOnExit | ( | Visitor * | ptr | ) | [inline, protected] |
Perform a delete ptr; operation on ptr when this object is deleted.
Definition at line 422 of file cmd_line.hpp.
void ecl::CmdLine::deleteOnExit | ( | Arg * | ptr | ) | [inline, protected] |
Perform a delete ptr; operation on ptr when this object is deleted.
Definition at line 417 of file cmd_line.hpp.
std::list< Arg * > & ecl::CmdLine::getArgList | ( | ) | [inline, virtual] |
char ecl::CmdLine::getDelimiter | ( | ) | [inline, virtual] |
Returns the delimiter string.
Implements ecl::CmdLineInterface.
Definition at line 458 of file cmd_line.hpp.
std::string & ecl::CmdLine::getMessage | ( | ) | [inline, virtual] |
Returns the message string.
Implements ecl::CmdLineInterface.
Definition at line 463 of file cmd_line.hpp.
CmdLineOutput * ecl::CmdLine::getOutput | ( | ) | [inline, virtual] |
Returns the CmdLineOutput object.
Implements ecl::CmdLineInterface.
Definition at line 427 of file cmd_line.hpp.
std::string & ecl::CmdLine::getProgramName | ( | ) | [inline, virtual] |
Returns the program name string.
Implements ecl::CmdLineInterface.
Definition at line 443 of file cmd_line.hpp.
std::string & ecl::CmdLine::getVersion | ( | ) | [inline, virtual] |
Returns the version string.
Implements ecl::CmdLineInterface.
Definition at line 438 of file cmd_line.hpp.
XorHandler & ecl::CmdLine::getXorHandler | ( | ) | [inline, virtual] |
Returns the XorHandler.
Implements ecl::CmdLineInterface.
Definition at line 453 of file cmd_line.hpp.
bool ecl::CmdLine::hasHelpAndVersion | ( | ) | [inline, virtual] |
Indicates whether or not the help and version switches were created automatically.
Implements ecl::CmdLineInterface.
Definition at line 468 of file cmd_line.hpp.
void ecl::CmdLine::parse | ( | int | argc, | |
char ** | argv | |||
) | [inline, virtual] |
Parses the command line.
argc | - Number of arguments. | |
argv | - Array of arguments. |
Implements ecl::CmdLineInterface.
Definition at line 360 of file cmd_line.hpp.
void ecl::CmdLine::setOutput | ( | CmdLineOutput * | co | ) | [inline, virtual] |
co | - CmdLineOutput object that we want to use instead. |
Implements ecl::CmdLineInterface.
Definition at line 432 of file cmd_line.hpp.
void ecl::CmdLine::xorAdd | ( | std::vector< Arg * > & | xors | ) | [inline, virtual] |
Add a list of Args that will be xor'd. If this method is used, add does not need to be called.
xors | - List of Args to be added and xor'd. |
Implements ecl::CmdLineInterface.
Definition at line 320 of file cmd_line.hpp.
Add two Args that will be xor'd. If this method is used, add does not need to be called.
a | - Argument to be added and xor'd. | |
b | - Argument to be added and xor'd. |
Implements ecl::CmdLineInterface.
Definition at line 333 of file cmd_line.hpp.
std::list<Arg*> ecl::CmdLine::_argDeleteOnExitList [protected] |
A list of Args to be explicitly deleted when the destructor is called. At the moment, this only includes the three default Args.
Definition at line 80 of file cmd_line.hpp.
std::list<Arg*> ecl::CmdLine::_argList [protected] |
The list of arguments that will be tested against the command line.
Definition at line 40 of file cmd_line.hpp.
char ecl::CmdLine::_delimiter [protected] |
The character that is used to separate the argument flag/name from the value. Defaults to ' ' (space).
Definition at line 68 of file cmd_line.hpp.
bool ecl::CmdLine::_helpAndVersion [private] |
Whether or not to automatically create help and version switches.
Definition at line 129 of file cmd_line.hpp.
std::string ecl::CmdLine::_message [protected] |
A message used to describe the program. Used in the usage output.
Definition at line 50 of file cmd_line.hpp.
int ecl::CmdLine::_numRequired [protected] |
The number of arguments that are required to be present on the command line. This is set dynamically, based on the Args added to the CmdLine object.
Definition at line 62 of file cmd_line.hpp.
CmdLineOutput* ecl::CmdLine::_output [protected] |
Object that handles all output for the CmdLine.
Definition at line 92 of file cmd_line.hpp.
std::string ecl::CmdLine::_progName [protected] |
The name of the program. Set to argv[0].
Definition at line 45 of file cmd_line.hpp.
bool ecl::CmdLine::_userSetOutput [private] |
Is set to true when a user sets the output object. We use this so that we don't delete objects that are created outside of this lib.
Definition at line 124 of file cmd_line.hpp.
std::string ecl::CmdLine::_version [protected] |
The version to be displayed with the --version switch.
Definition at line 55 of file cmd_line.hpp.
std::list<Visitor*> ecl::CmdLine::_visitorDeleteOnExitList [protected] |
A list of Visitors to be explicitly deleted when the destructor is called. At the moment, these are the Vistors created for the default Args.
Definition at line 87 of file cmd_line.hpp.
XorHandler ecl::CmdLine::_xorHandler [protected] |
The handler that manages xoring lists of args.
Definition at line 73 of file cmd_line.hpp.