diff options
Diffstat (limited to 'Source/kwsys/CommandLineArguments.hxx.in')
-rw-r--r-- | Source/kwsys/CommandLineArguments.hxx.in | 133 |
1 files changed, 62 insertions, 71 deletions
diff --git a/Source/kwsys/CommandLineArguments.hxx.in b/Source/kwsys/CommandLineArguments.hxx.in index e4f6d02655..31115e51fb 100644 --- a/Source/kwsys/CommandLineArguments.hxx.in +++ b/Source/kwsys/CommandLineArguments.hxx.in @@ -1,14 +1,5 @@ -/*============================================================================ - KWSys - Kitware System Library - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium - - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing#kwsys for details. */ #ifndef @KWSYS_NAMESPACE@_CommandLineArguments_hxx #define @KWSYS_NAMESPACE@_CommandLineArguments_hxx @@ -18,8 +9,7 @@ #include <string> #include <vector> -namespace @KWSYS_NAMESPACE@ -{ +namespace @KWSYS_NAMESPACE@ { class CommandLineArgumentsInternal; struct CommandLineArgumentsCallbackStructure; @@ -41,28 +31,29 @@ struct CommandLineArgumentsCallbackStructure; * the argument is specified, the variable is set to the specified value casted * to the appropriate type. For boolean (NO_ARGUMENT), the value is "1". * - * Both interfaces can be used at the same time. + * Both interfaces can be used at the same time. * * Possible argument types are: * NO_ARGUMENT - The argument takes no value : --A * CONCAT_ARGUMENT - The argument takes value after no space : --Aval - * SPACE_ARGUMENT - The argument takes value after space : --A val + * SPACE_ARGUMENT - The argument takes value after space : --A val * EQUAL_ARGUMENT - The argument takes value after equal : --A=val - * MULTI_ARGUMENT - The argument takes values after space : --A val1 val2 val3 ... + * MULTI_ARGUMENT - The argument takes values after space : --A val1 val2 + * val3 ... * * Example use: * * kwsys::CommandLineArguments arg; * arg.Initialize(argc, argv); * typedef kwsys::CommandLineArguments argT; - * arg.AddArgument("--something", argT::EQUAL_ARGUMENT, &some_variable, + * arg.AddArgument("--something", argT::EQUAL_ARGUMENT, &some_variable, * "This is help string for --something"); * if ( !arg.Parse() ) * { * std::cerr << "Problem parsing arguments" << std::endl; * res = 1; * } - * + * */ class @KWSYS_NAMESPACE@_EXPORT CommandLineArguments @@ -74,7 +65,8 @@ public: /** * Various argument types. */ - enum ArgumentTypeEnum { + enum ArgumentTypeEnum + { NO_ARGUMENT, CONCAT_ARGUMENT, SPACE_ARGUMENT, @@ -86,27 +78,28 @@ public: * Various variable types. When using the variable interface, this specifies * what type the variable is. */ - enum VariableTypeEnum { - NO_VARIABLE_TYPE = 0, // The variable is not specified - INT_TYPE, // The variable is integer (int) - BOOL_TYPE, // The variable is boolean (bool) - DOUBLE_TYPE, // The variable is float (double) - STRING_TYPE, // The variable is string (char*) - STL_STRING_TYPE, // The variable is string (char*) - VECTOR_INT_TYPE, // The variable is integer (int) - VECTOR_BOOL_TYPE, // The variable is boolean (bool) - VECTOR_DOUBLE_TYPE, // The variable is float (double) - VECTOR_STRING_TYPE, // The variable is string (char*) - VECTOR_STL_STRING_TYPE, // The variable is string (char*) + enum VariableTypeEnum + { + NO_VARIABLE_TYPE = 0, // The variable is not specified + INT_TYPE, // The variable is integer (int) + BOOL_TYPE, // The variable is boolean (bool) + DOUBLE_TYPE, // The variable is float (double) + STRING_TYPE, // The variable is string (char*) + STL_STRING_TYPE, // The variable is string (char*) + VECTOR_INT_TYPE, // The variable is integer (int) + VECTOR_BOOL_TYPE, // The variable is boolean (bool) + VECTOR_DOUBLE_TYPE, // The variable is float (double) + VECTOR_STRING_TYPE, // The variable is string (char*) + VECTOR_STL_STRING_TYPE, // The variable is string (char*) LAST_VARIABLE_TYPE }; /** * Prototypes for callbacks for callback interface. */ - typedef int(*CallbackType)(const char* argument, const char* value, - void* call_data); - typedef int(*ErrorCallbackType)(const char* argument, void* client_data); + typedef int (*CallbackType)(const char* argument, const char* value, + void* call_data); + typedef int (*ErrorCallbackType)(const char* argument, void* client_data); /** * Initialize internal data structures. This should be called before parsing. @@ -133,24 +126,24 @@ public: * argument help specifies the help string used with this option. The * callback and call_data can be skipped. */ - void AddCallback(const char* argument, ArgumentTypeEnum type, - CallbackType callback, void* call_data, const char* help); + void AddCallback(const char* argument, ArgumentTypeEnum type, + CallbackType callback, void* call_data, const char* help); /** * Add handler for argument which is going to set the variable to the * specified value. If the argument is specified, the option is casted to the * appropriate type. */ + void AddArgument(const char* argument, ArgumentTypeEnum type, bool* variable, + const char* help); + void AddArgument(const char* argument, ArgumentTypeEnum type, int* variable, + const char* help); void AddArgument(const char* argument, ArgumentTypeEnum type, - bool* variable, const char* help); + double* variable, const char* help); void AddArgument(const char* argument, ArgumentTypeEnum type, - int* variable, const char* help); - void AddArgument(const char* argument, ArgumentTypeEnum type, - double* variable, const char* help); - void AddArgument(const char* argument, ArgumentTypeEnum type, - char** variable, const char* help); + char** variable, const char* help); void AddArgument(const char* argument, ArgumentTypeEnum type, - std::string* variable, const char* help); + std::string* variable, const char* help); /** * Add handler for argument which is going to set the variable to the @@ -158,31 +151,31 @@ public: * appropriate type. This will handle the multi argument values. */ void AddArgument(const char* argument, ArgumentTypeEnum type, - std::vector<bool>* variable, const char* help); + std::vector<bool>* variable, const char* help); + void AddArgument(const char* argument, ArgumentTypeEnum type, + std::vector<int>* variable, const char* help); + void AddArgument(const char* argument, ArgumentTypeEnum type, + std::vector<double>* variable, const char* help); void AddArgument(const char* argument, ArgumentTypeEnum type, - std::vector<int>* variable, const char* help); - void AddArgument(const char* argument, ArgumentTypeEnum type, - std::vector<double>* variable, const char* help); - void AddArgument(const char* argument, ArgumentTypeEnum type, - std::vector<char*>* variable, const char* help); + std::vector<char*>* variable, const char* help); void AddArgument(const char* argument, ArgumentTypeEnum type, - std::vector<std::string>* variable, const char* help); + std::vector<std::string>* variable, const char* help); /** * Add handler for boolean argument. The argument does not take any option * and if it is specified, the value of the variable is true/1, otherwise it * is false/0. */ - void AddBooleanArgument(const char* argument, - bool* variable, const char* help); - void AddBooleanArgument(const char* argument, - int* variable, const char* help); - void AddBooleanArgument(const char* argument, - double* variable, const char* help); - void AddBooleanArgument(const char* argument, - char** variable, const char* help); - void AddBooleanArgument(const char* argument, - std::string* variable, const char* help); + void AddBooleanArgument(const char* argument, bool* variable, + const char* help); + void AddBooleanArgument(const char* argument, int* variable, + const char* help); + void AddBooleanArgument(const char* argument, double* variable, + const char* help); + void AddBooleanArgument(const char* argument, char** variable, + const char* help); + void AddBooleanArgument(const char* argument, std::string* variable, + const char* help); /** * Set the callbacks for error handling. @@ -236,14 +229,14 @@ protected: //! This is internal method that registers variable with argument void AddArgument(const char* argument, ArgumentTypeEnum type, - VariableTypeEnum vtype, void* variable, const char* help); + VariableTypeEnum vtype, void* variable, const char* help); bool GetMatchedArguments(std::vector<std::string>* matches, - const std::string& arg); + const std::string& arg); //! Populate individual variables bool PopulateVariable(CommandLineArgumentsCallbackStructure* cs, - const char* value); + const char* value); //! Populate individual variables of type ... void PopulateVariable(bool* variable, const std::string& value); @@ -253,9 +246,12 @@ protected: void PopulateVariable(std::string* variable, const std::string& value); void PopulateVariable(std::vector<bool>* variable, const std::string& value); void PopulateVariable(std::vector<int>* variable, const std::string& value); - void PopulateVariable(std::vector<double>* variable, const std::string& value); - void PopulateVariable(std::vector<char*>* variable, const std::string& value); - void PopulateVariable(std::vector<std::string>* variable, const std::string& value); + void PopulateVariable(std::vector<double>* variable, + const std::string& value); + void PopulateVariable(std::vector<char*>* variable, + const std::string& value); + void PopulateVariable(std::vector<std::string>* variable, + const std::string& value); typedef CommandLineArgumentsInternal Internal; Internal* Internals; @@ -269,8 +265,3 @@ protected: } // namespace @KWSYS_NAMESPACE@ #endif - - - - - |