| 
    Teuchos - Trilinos Tools Package
    Version of the Day
    
   | 
 
Class that helps parse command line input arguments from (argc,argv[]) and set options.  
 More...
#include <Teuchos_CommandLineProcessor.hpp>
Classes | |
| class | HelpPrinted | 
| Thrown if –help was specified and throwExceptions==true.  More... | |
| class | ParseError | 
| Thrown if a parse std::exception occurs and throwExceptions==true.  More... | |
| class | TimeMonitorSurrogate | 
| Interface by which CommandLineProcessor may use TimeMonitor.  More... | |
| class | UnrecognizedOption | 
| Thrown if an unrecognized option was found and throwExceptions==true.  More... | |
Public Types | |
Public types  | |
| enum | EParseCommandLineReturn { PARSE_SUCCESSFUL = 0, PARSE_HELP_PRINTED = 1, PARSE_UNRECOGNIZED_OPTION = 2, PARSE_ERROR = 3 } | 
Return value for CommandLineProcessor::parse(). Note: These enums are all given non-negative values since they are designed to be returned from main().  More... | |
Public Member Functions | |
Constructors  | |
| CommandLineProcessor (bool throwExceptions=true, bool recogniseAllOptions=true, bool addOutputSetupOptions=false) | |
| Default Constructor.  More... | |
| ~CommandLineProcessor () | |
| Destructor.  More... | |
Behavior modes  | |
| void | throwExceptions (const bool &throwExceptions) | 
| Set if an std::exception is thrown, there is a parse error, or help is printed.  More... | |
| bool | throwExceptions () const | 
| Returns true if an std::exception is thrown, there is a parse error, or help is printed.  More... | |
| void | recogniseAllOptions (const bool &recogniseAllOptions) | 
| Set if all options must be recognized or not.  More... | |
| bool | recogniseAllOptions () const | 
| Returns true if all options must be recognized by the parser.  More... | |
| void | addOutputSetupOptions (const bool &addOutputSetupOptions) | 
Set if options will be automatically added to setup Teuchos::VerboseObjectBase::getDefaultOStream().  More... | |
| bool | addOutputSetupOptions () const | 
Returns true options will be automatically added to setup Teuchos::VerboseObjectBase::getDefaultOStream().  More... | |
Set up options  | |
| void | setDocString (const char doc_string[]) | 
| Set a documentation sting for the entire program printed when –help is specified.  More... | |
| void | setOption (const char option_true[], const char option_false[], bool *option_val, const char documentation[]=NULL) | 
| Set a boolean option.  More... | |
| void | setOption (const char option_name[], int *option_val, const char documentation[]=NULL, const bool required=false) | 
| Set an integer option.  More... | |
| void | setOption (const char option_name[], long int *option_val, const char documentation[]=NULL, const bool required=false) | 
| Set a long integer option.  More... | |
| void | setOption (const char option_name[], size_t *option_val, const char documentation[]=NULL, const bool required=false) | 
| Set a size_t option.  More... | |
| void | setOption (const char option_name[], long long int *option_val, const char documentation[]=NULL, const bool required=false) | 
| Set a long long integer option.  More... | |
| void | setOption (const char option_name[], double *option_val, const char documentation[]=NULL, const bool required=false) | 
| Set a floating-point option.  More... | |
| void | setOption (const char option_name[], float *option_val, const char documentation[]=NULL, const bool required=false) | 
| Set a floating-point option.  More... | |
| void | setOption (const char option_name[], std::string *option_val, const char documentation[]=NULL, const bool required=false) | 
| Set a std::string option.  More... | |
| template<class EType > | |
| void | setOption (const char enum_option_name[], EType *enum_option_val, const int num_enum_opt_values, const EType enum_opt_values[], const char *const enum_opt_names[], const char documentation[]=nullptr, const bool required=false) | 
| Set an enumeration option (templated by enumeration type).  More... | |
Parse  | |
| EParseCommandLineReturn | parse (int argc, char *argv[], std::ostream *errout=&std::cerr) const | 
| Parse a command line.  More... | |
Miscellaneous  | |
| void | printHelpMessage (const char program_name[], std::ostream &out) const | 
| Print the help message.  More... | |
| void | printFinalTimerSummary (const Ptr< std::ostream > &out=null) | 
| Call to print timers so that they don't get printed in the destructor.  More... | |
Related Functions | |
(Note that these are not member functions.)  | |
| void | setVerbosityLevelOption (const std::string &optionName, EVerbosityLevel *verbLevel, const std::string &docString, CommandLineProcessor *clp, const bool required=false) | 
| Set a verbosity level parameter on a CommandLineProcessor object..  More... | |
Class that helps parse command line input arguments from (argc,argv[]) and set options. 
This class will process command-line arguments in the form of (argc,argv[]) and set user-defined options. This class can also work in a number of modes. This processor can require that all options be recognized or not.
This class object will also setup the behavior of Teuchos::VerboseObjectBase::getDefaultOStream() if this->addOutputSetupOptions()==true
Warning, the option –show-timer-summary is only enabled if the subpackage TeuchosComm is enabled!
Definition at line 44 of file Teuchos_CommandLineProcessor.hpp.
Return value for CommandLineProcessor::parse(). Note: These enums are all given non-negative values since they are designed to be returned from main(). 
Definition at line 66 of file Teuchos_CommandLineProcessor.hpp.
| Teuchos::CommandLineProcessor::CommandLineProcessor | ( | bool | throwExceptions = true,  | 
        
| bool | recogniseAllOptions = true,  | 
        ||
| bool | addOutputSetupOptions = false  | 
        ||
| ) | 
Default Constructor.
| throwExceptions | [in] If true then this->parse() will throw exceptions instead of returning !=PARSE_SUCCESSFUL.  | 
| recogniseAllOptions | [in] If true then this->parse() will return the appropriate error for any option it does not recognize. If false, then this->parse() will simply ignore options that it does not recognize. However, a warning will be printed for any unrecognized option, but no errors will be returned.  | 
| addOutputSetupOptions | [in] If true then options will be automatically added to setup Teuchos::VerboseObjectBase::getDefaultOStream().  | 
Definition at line 68 of file Teuchos_CommandLineProcessor.cpp.
| Teuchos::CommandLineProcessor::~CommandLineProcessor | ( | ) | 
Destructor.
Definition at line 92 of file Teuchos_CommandLineProcessor.cpp.
      
  | 
  inline | 
Set if an std::exception is thrown, there is a parse error, or help is printed.
Definition at line 663 of file Teuchos_CommandLineProcessor.hpp.
      
  | 
  inline | 
Returns true if an std::exception is thrown, there is a parse error, or help is printed.
Definition at line 668 of file Teuchos_CommandLineProcessor.hpp.
      
  | 
  inline | 
Set if all options must be recognized or not.
Definition at line 673 of file Teuchos_CommandLineProcessor.hpp.
      
  | 
  inline | 
Returns true if all options must be recognized by the parser.
Definition at line 678 of file Teuchos_CommandLineProcessor.hpp.
      
  | 
  inline | 
Set if options will be automatically added to setup Teuchos::VerboseObjectBase::getDefaultOStream(). 
Definition at line 683 of file Teuchos_CommandLineProcessor.hpp.
      
  | 
  inline | 
Returns true options will be automatically added to setup Teuchos::VerboseObjectBase::getDefaultOStream(). 
Definition at line 688 of file Teuchos_CommandLineProcessor.hpp.
| void Teuchos::CommandLineProcessor::setDocString | ( | const char | doc_string[] | ) | 
Set a documentation sting for the entire program printed when –help is specified.
Definition at line 101 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::setOption | ( | const char | option_true[], | 
| const char | option_false[], | ||
| bool * | option_val, | ||
| const char | documentation[] = NULL  | 
        ||
| ) | 
Set a boolean option.
| option_true | [in] (null terminated std::string) If this option is found then *option_val = true will be set.  | 
| option_false | [in] (null terminated std::string) If this option is found then *option_val = false will be set.  | 
| option_val | [in/out] On input, *option_val gives the default value of the option (used for printing in –help). On output, will be set according to (argc,argv[]).  | 
| documentation | [in] If !=NULL, then this null terminated std::string gives the documentation for the option.  | 
Definition at line 107 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::setOption | ( | const char | option_name[], | 
| int * | option_val, | ||
| const char | documentation[] = NULL,  | 
        ||
| const bool | required = false  | 
        ||
| ) | 
Set an integer option.
| option_name | [in] (null terminated std::string) The name of the option (without the leading '–' or trailing '='). | 
| option_val | [in/out] On input, *option_val gives the default value of the option (used for printing in –help). On output, will be set according to (argc,argv[]).  | 
| documentation | [in] If !=NULL, then this null terminated std::string gives the documentation for the option.  | 
Definition at line 127 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::setOption | ( | const char | option_name[], | 
| long int * | option_val, | ||
| const char | documentation[] = NULL,  | 
        ||
| const bool | required = false  | 
        ||
| ) | 
Set a long integer option.
| option_name | [in] (null terminated std::string) The name of the option (without the leading '–' or trailing '='). | 
| option_val | [in/out] On input, *option_val gives the default value of the option (used for printing in –help). On output, will be set according to (argc,argv[]).  | 
| documentation | [in] If !=NULL, then this null terminated std::string gives the documentation for the option.  | 
Definition at line 145 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::setOption | ( | const char | option_name[], | 
| size_t * | option_val, | ||
| const char | documentation[] = NULL,  | 
        ||
| const bool | required = false  | 
        ||
| ) | 
Set a size_t option.
| option_name | [in] (null terminated std::string) The name of the option (without the leading '–' or trailing '='). | 
| option_val | [in/out] On input, *option_val gives the default value of the option (used for printing in –help). On output, will be set according to (argc,argv[]).  | 
| documentation | [in] If !=NULL, then this null terminated std::string gives the documentation for the option.  | 
Definition at line 163 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::setOption | ( | const char | option_name[], | 
| long long int * | option_val, | ||
| const char | documentation[] = NULL,  | 
        ||
| const bool | required = false  | 
        ||
| ) | 
Set a long long integer option.
| option_name | [in] (null terminated std::string) The name of the option (without the leading '–' or trailing '='). | 
| option_val | [in/out] On input, *option_val gives the default value of the option (used for printing in –help). On output, will be set according to (argc,argv[]).  | 
| documentation | [in] If !=NULL, then this null terminated std::string gives the documentation for the option.  | 
Definition at line 180 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::setOption | ( | const char | option_name[], | 
| double * | option_val, | ||
| const char | documentation[] = NULL,  | 
        ||
| const bool | required = false  | 
        ||
| ) | 
Set a floating-point option.
| option_name | [in] (null terminated std::string) The name of the option (without the leading '–' or trailing '='). | 
| option_val | [in/out] On input, *option_val gives the default value of the option (used for printing in –help). On output, will be set according to (argc,argv[]).  | 
| documentation | [in] If !=NULL, then this null terminated std::string gives the documentation for the option.  | 
Definition at line 197 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::setOption | ( | const char | option_name[], | 
| float * | option_val, | ||
| const char | documentation[] = NULL,  | 
        ||
| const bool | required = false  | 
        ||
| ) | 
Set a floating-point option.
| option_name | [in] (null terminated std::string) The name of the option (without the leading '–' or trailing '='). | 
| option_val | [in/out] On input, *option_val gives the default value of the option (used for printing in –help). On output, will be set according to (argc,argv[]).  | 
| documentation | [in] If !=NULL, then this null terminated std::string gives the documentation for the option.  | 
Definition at line 214 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::setOption | ( | const char | option_name[], | 
| std::string * | option_val, | ||
| const char | documentation[] = NULL,  | 
        ||
| const bool | required = false  | 
        ||
| ) | 
Set a std::string option.
| option_name | [in] (null terminated std::string) The name of the option (without the leading '–' or trailing '='). | 
| option_val | [in/out] On input, *option_val gives the default value of the option (used for printing in –help). On output, will be set according to (argc,argv[]).  | 
| documentation | [in] If !=NULL, then this null terminated std::string gives the documentation for the option.  | 
Definition at line 231 of file Teuchos_CommandLineProcessor.cpp.
      
  | 
  inline | 
Set an enumeration option (templated by enumeration type).
| enum_option_name | [in] (null terminated std::string) The name of the option (without the leading '–' or trailing '='). | 
| enum_option_val | [in/out] On input, *enum_option_val gives the default value of the enumeration (used for printing in –help). After parse() finishes executing successfully, *enum_option_val will contain the user-selected value of the enumeration. | 
| num_enum_opt_values | [in] Gives the number of possible option values to select | 
| enum_opt_values | [in] Array (length num_enum_opt_values) that gives the numeric values for each option. The values in this array are used to set the actual option *enum_option_val. | 
| enum_opt_names | [in] Array (length num_enum_opt_values) that gives the char string names for each option. The strings in this function are what is used in the commandline. | 
| documentation | [in] If !=NULL, then this array of null-terminated char string gives the documentation for the option. | 
Warning! Only use an enum or int for EType. Using any other type for EType could be trouble! 
Definition at line 694 of file Teuchos_CommandLineProcessor.hpp.
| CommandLineProcessor::EParseCommandLineReturn Teuchos::CommandLineProcessor::parse | ( | int | argc, | 
| char * | argv[], | ||
| std::ostream * | errout = &std::cerr  | 
        ||
| ) | const | 
Parse a command line.
| argc | [in] number of entries in argv[] | 
| argv | [in/out] array (length argc) of command line arguments. argv[0] should be the name of the program on the shell as usual. | 
| errout | [out] If !=NULL then error and help messages are sent here. The default is set to &std::cerr. | 
Postconditions:
this->recogniseAllOptions()==true *errout and parsing will stop as follows: this->throwExceptions()==true UnrecognizedOption std::exceptionPARSE_UNRECOGNIZED_OPTION*errout and parsing will continue–help is found this->throwExceptions()==true HelpPrinted std::exceptionPARSE_HELP_PRINTEDPARSE_SUCCESSFULNote that if the option –pause-for-debugging is present, then std::string Type 0 and press enter to continue : will be printed to standard error (std::cerr) and execution will be suspended until the user enters any non-null character(s). This option is designed to make it easier to attach a debugger, especially in a parallel MPI program. If HAVE_MPI is defined, then output/input is only performed with the process with rank 0 and then MPI calls insure that all processors wait (using MPI_Barrier(MPI_COMM_WORLD)) until the user has entered something. This allows the user to attach a debugger to one or more parallel MPI processes and set breakpoints before execution resumes. Note that the stream *errout is not used for this output/input but instead std::cerr is directly used.
If Teuchos::VerboseObjectBase::getDefaultOStream().get()!=NULL and this->addOutputSetupOptions(), then any of the default setup options for Teuchos::VerboseObjectBase::getDefaultOStream() that are set on the commandline will be set on Teuchos::VerboseObjectBase::getDefaultOStream(). 
Definition at line 253 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::printHelpMessage | ( | const char | program_name[], | 
| std::ostream & | out | ||
| ) | const | 
Print the help message.
| out | [in/out] The stream the documentation will be printed to. | 
This will print a formatted set of documentation that shows what options are set, what their default values are and any user-supplied documentation about each option.
Definition at line 432 of file Teuchos_CommandLineProcessor.cpp.
| void Teuchos::CommandLineProcessor::printFinalTimerSummary | ( | const Ptr< std::ostream > & | out = null | ) | 
Call to print timers so that they don't get printed in the destructor.
Calling this function after the first call has no effect.
Definition at line 601 of file Teuchos_CommandLineProcessor.cpp.
      
  | 
  related | 
Set a verbosity level parameter on a CommandLineProcessor object..
 1.8.5