#include <args.h>
Inheritance diagram for PArgList:
Public Member Functions | |
Overrides from class PObject | |
virtual void | PrintOn (ostream &strm) const |
virtual void | ReadFrom (istream &strm) |
Setting & Parsing | |
void | SetArgs (const PString &theArgStr) |
void | SetArgs (int theArgc, char **theArgv) |
void | SetArgs (const PStringArray &theArgs) |
virtual PBoolean | Parse (const char *theArgumentSpec, PBoolean optionsBeforeParams=PTrue) |
virtual PBoolean | Parse (const PString &theArgumentStr, PBoolean optionsBeforeParams=PTrue) |
Getting parsed arguments | |
virtual PINDEX | GetOptionCount (char optionChar) const |
virtual PINDEX | GetOptionCount (const char *optionStr) const |
virtual PINDEX | GetOptionCount (const PString &optionName) const |
PBoolean | HasOption (char optionChar) const |
PBoolean | HasOption (const char *optionStr) const |
PBoolean | HasOption (const PString &optionName) const |
virtual PString | GetOptionString (char optionChar, const char *dflt=NULL) const |
virtual PString | GetOptionString (const char *optionStr, const char *dflt=NULL) const |
virtual PString | GetOptionString (const PString &optionName, const char *dflt=NULL) const |
PINDEX | GetCount () const |
PStringArray | GetParameters (PINDEX first=0, PINDEX last=P_MAX_INDEX) const |
PString | GetParameter (PINDEX num) const |
PString | operator[] (PINDEX num) const |
void | Shift (int sh) |
PArgList & | operator<< (int sh) |
PArgList & | operator>> (int sh) |
Errors | |
virtual void | IllegalArgumentIndex (PINDEX idx) const |
virtual void | UnknownOption (const PString &option) const |
virtual void | MissingArgument (const PString &option) const |
Protected Attributes | |
PStringArray | argumentArray |
The original program arguments. | |
PString | optionLetters |
The specification letters for options. | |
PStringArray | optionNames |
The specification strings for options. | |
PIntArray | optionCount |
The count of the number of times an option appeared in the command line. | |
PStringArray | optionString |
The array of associated strings to options. | |
PIntArray | parameterIndex |
The index of each . | |
int | shift |
Shift count for the parameters in the argument list. |
PArgList::PArgList | ( | const char * | theArgPtr = NULL , |
|
const char * | argumentSpecPtr = NULL , |
|||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list. An argument list is created given the standard arguments and a specification for options. The program arguments are parsed from this into options and parameters.
The specification string consists of case significant letters for each option. If the letter is followed by the ':' character then the option has an associated string. This string must be in the argument or in the next argument.
theArgPtr | A string constituting the arguments |
argumentSpecPtr | The specification C string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | const PString & | theArgStr, | |
const char * | argumentSpecPtr = NULL , |
|||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list.
theArgStr | A string constituting the arguments |
argumentSpecPtr | The specification C string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | const PString & | theArgStr, | |
const PString & | argumentSpecStr, | |||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list.
theArgStr | A string constituting the arguments |
argumentSpecStr | The specification string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | int | theArgc, | |
char ** | theArgv, | |||
const char * | argumentSpecPtr = NULL , |
|||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list.
theArgc | Count of argument strings in theArgv |
theArgv | An array of strings constituting the arguments |
argumentSpecPtr | The specification C string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | int | theArgc, | |
char ** | theArgv, | |||
const PString & | argumentSpecStr, | |||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list.
theArgc | Count of argument strings in theArgv |
theArgv | An array of strings constituting the arguments |
argumentSpecStr | The specification string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | const char * | theArgPtr = NULL , |
|
const char * | argumentSpecPtr = NULL , |
|||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list. An argument list is created given the standard arguments and a specification for options. The program arguments are parsed from this into options and parameters.
The specification string consists of case significant letters for each option. If the letter is followed by the ':' character then the option has an associated string. This string must be in the argument or in the next argument.
theArgPtr | A string constituting the arguments |
argumentSpecPtr | The specification C string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | const PString & | theArgStr, | |
const char * | argumentSpecPtr = NULL , |
|||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list.
theArgStr | A string constituting the arguments |
argumentSpecPtr | The specification C string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | const PString & | theArgStr, | |
const PString & | argumentSpecStr, | |||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list.
theArgStr | A string constituting the arguments |
argumentSpecStr | The specification string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | int | theArgc, | |
char ** | theArgv, | |||
const char * | argumentSpecPtr = NULL , |
|||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list.
theArgc | Count of argument strings in theArgv |
theArgv | An array of strings constituting the arguments |
argumentSpecPtr | The specification C string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PArgList::PArgList | ( | int | theArgc, | |
char ** | theArgv, | |||
const PString & | argumentSpecStr, | |||
PBoolean | optionsBeforeParams = PTrue | |||
) |
Create an argument list.
theArgc | Count of argument strings in theArgv |
theArgv | An array of strings constituting the arguments |
argumentSpecStr | The specification string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
virtual void PArgList::PrintOn | ( | ostream & | strm | ) | const [virtual] |
Output the string to the specified stream.
strm | I/O stream to output to. |
Reimplemented from PObject.
virtual void PArgList::ReadFrom | ( | istream & | strm | ) | [virtual] |
Input the string from the specified stream. This will read all characters until a end of line is reached, then parsing the arguments.
strm | I/O stream to input from. |
Reimplemented from PObject.
void PArgList::SetArgs | ( | const PString & | theArgStr | ) |
Set the internal copy of the program arguments.
theArgStr | A string constituting the arguments |
PINLINE void PArgList::SetArgs | ( | int | theArgc, | |
char ** | theArgv | |||
) |
Set the internal copy of the program arguments.
theArgc | Count of argument strings in theArgv |
theArgv | An array of strings constituting the arguments |
void PArgList::SetArgs | ( | const PStringArray & | theArgs | ) |
Set the internal copy of the program arguments.
theArgs | A string array constituting the arguments |
virtual PBoolean PArgList::Parse | ( | const char * | theArgumentSpec, | |
PBoolean | optionsBeforeParams = PTrue | |||
) | [virtual] |
Parse the arguments. Parse the standard C program arguments into an argument of options and parameters. Consecutive calls with optionsBeforeParams# set to PTrue will parse out different options and parameters. If SetArgs() function is called then the Parse() function will restart from the beginning of the argument list.
The specification string consists of case significant letters for each option. If the letter is followed by a '-' character then a long name version of the option is present. This is terminated either by a '.' or a ':' character. If the single letter or long name is followed by the ':' character then the option has may have an associated string. This string must be within the argument or in the next argument. If a single letter option is followed by a ';' character, then the option may have an associated string but this MUST follow the letter immediately, if it is present at all.
For example, "ab:c" allows for "-a -b arg -barg -c" and "a-an-arg.b-option:c;" allows for "-a --an-arg --option arg -c -copt".
theArgumentSpec | The specification string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
PINLINE PBoolean PArgList::Parse | ( | const PString & | theArgumentStr, | |
PBoolean | optionsBeforeParams = PTrue | |||
) | [virtual] |
Parse the arguments.
theArgumentStr | The specification string for argument options. See description for details. |
optionsBeforeParams | Parse options only before parameters |
virtual PINDEX PArgList::GetOptionCount | ( | char | optionChar | ) | const [virtual] |
Get the count of the number of times the option was specified on the command line.
optionChar | Character letter code for the option |
virtual PINDEX PArgList::GetOptionCount | ( | const char * | optionStr | ) | const [virtual] |
Get the count of option
optionStr | String code for the option |
virtual PINDEX PArgList::GetOptionCount | ( | const PString & | optionName | ) | const [virtual] |
Get the count of option
optionName | String code for the option |
PINLINE PBoolean PArgList::HasOption | ( | char | optionChar | ) | const |
Get if option present. Determines whether the option was specified on the command line.
optionChar | Character letter code for the option |
PINLINE PBoolean PArgList::HasOption | ( | const char * | optionStr | ) | const |
Get if option present.
optionStr | String letter code for the option |
Get if option present.
optionName | String code for the option |
virtual PString PArgList::GetOptionString | ( | char | optionChar, | |
const char * | dflt = NULL | |||
) | const [virtual] |
Get option string. Gets the string associated with an option e.g. -ofile or -o file would return the string "file". An option may have an associated string if it had a ':' character folowing it in the specification string passed to the Parse() function.
optionChar | Character letter code for the option |
dflt | Default value of the option string |
virtual PString PArgList::GetOptionString | ( | const char * | optionStr, | |
const char * | dflt = NULL | |||
) | const [virtual] |
Get option string.
optionStr | String letter code for the option |
dflt | Default value of the option string |
virtual PString PArgList::GetOptionString | ( | const PString & | optionName, | |
const char * | dflt = NULL | |||
) | const [virtual] |
Get option string.
optionName | String code for the option |
dflt | Default value of the option string |
PINLINE PINDEX PArgList::GetCount | ( | ) | const |
Get the argument count. Get the number of parameters that may be obtained via the GetParameter()# function. Note that this does not include options and option strings.
PStringArray PArgList::GetParameters | ( | PINDEX | first = 0 , |
|
PINDEX | last = P_MAX_INDEX | |||
) | const |
Get the parameters that were parsed in the argument list.
PString PArgList::GetParameter | ( | PINDEX | num | ) | const |
Get the parameter that was parsed in the argument list.
num | Number of the parameter to retrieve. |
PINLINE PString PArgList::operator[] | ( | PINDEX | num | ) | const |
Get the parameter that was parsed in the argument list. The argument list object can thus be treated as an "array" of parameters.
num | Number of the parameter to retrieve. |
void PArgList::Shift | ( | int | sh | ) |
Shift the parameters by the specified amount. This allows the parameters to be parsed at the same position in the argument list "array".
sh | Number of parameters to shift forward through list |
PINLINE PArgList & PArgList::operator<< | ( | int | sh | ) |
Shift the parameters by the specified amount. This allows the parameters to be parsed at the same position in the argument list "array".
sh | Number of parameters to shift forward through list |
PINLINE PArgList & PArgList::operator>> | ( | int | sh | ) |
Shift the parameters by the specified amount. This allows the parameters to be parsed at the same position in the argument list "array".
sh | Number of parameters to shift backward through list |
virtual void PArgList::IllegalArgumentIndex | ( | PINDEX | idx | ) | const [virtual] |
This function is called when access to illegal parameter index is made in the GetParameter function. The default behaviour is to output a message to the standard PError# stream.
idx | Number of the parameter that was accessed. |
virtual void PArgList::UnknownOption | ( | const PString & | option | ) | const [virtual] |
This function is called when an unknown option was specified on the command line. The default behaviour is to output a message to the standard PError# stream.
option | Option that was illegally placed on command line. |
virtual void PArgList::MissingArgument | ( | const PString & | option | ) | const [virtual] |
This function is called when an option that requires an associated string was specified on the command line but no associated string was provided. The default behaviour is to output a message to the standard PError# stream.
option | Option for which the associated string was missing. |
PStringArray PArgList::argumentArray [protected] |
The original program arguments.
PString PArgList::optionLetters [protected] |
The specification letters for options.
PStringArray PArgList::optionNames [protected] |
The specification strings for options.
PIntArray PArgList::optionCount [protected] |
The count of the number of times an option appeared in the command line.
PStringArray PArgList::optionString [protected] |
The array of associated strings to options.
PIntArray PArgList::parameterIndex [protected] |
The index of each .
int PArgList::shift [protected] |
Shift count for the parameters in the argument list.