PhoenixMock  1.8.7
Tools to split/merge/print mock used in Phoenix
OptionParser.h
Go to the documentation of this file.
1 /***************************************
2  Auteur : Pierre Aubert
3  Mail : pierre.aubert@lapp.in2p3.fr
4  Licence : CeCILL-C
5 ****************************************/
6 
7 #ifndef __POPTIONPARSER_H__
8 #define __POPTIONPARSER_H__
9 
10 #include "OptionMode.h"
11 
13 
16  public:
17  OptionParser(bool enableHelpOption = true, const std::string & programVersion = "");
18  OptionParser(const OptionParser & other);
19  virtual ~OptionParser();
20  OptionParser & operator = (const OptionParser & other);
21 
22  void setExampleLongOption(const std::string & example);
23  void setExampleShortOption(const std::string & example);
24 
25  void addMode(const std::string & modeName);
26  void closeMode();
27 
28  void addOption(const std::string & longOption, const std::string & shortOption, OptionType::OptionType optionType,
29  bool isRequired, const std::string & docString);
30  void addOption(const std::string & longOption, const std::string & shortOption, OptionType::OptionType optionType,
31  bool isRequired, bool isAllowEmpty, const std::string & docString);
32 
33  template<typename T>
34  void addOption(const std::string & longOption, const std::string & shortOption, const T defaultValue, const std::string & docString = "");
35 
36  template<typename T>
37  void addOption(const std::string & longOption, const std::string & shortOption, const T defaultValue,
38  OptionType::OptionType optionType, const std::string & docString = "");
39 
40  template<typename T>
41  void addOption(const std::string & longOption, const std::string & shortOption, const std::vector<T> & defaultValue, const std::string & docString = "");
42  template<typename T>
43  void addOption(const std::string & longOption, const std::string & shortOption, const std::list<T> & defaultValue, const std::string & docString = "");
44 
45  template<typename T>
46  void addOption(const std::string & longOption, const std::string & shortOption, const std::vector<T> & defaultValue,
47  OptionType::OptionType optionType, const std::string & docString = "");
48  template<typename T>
49  void addOption(const std::string & longOption, const std::string & shortOption, const std::list<T> & defaultValue,
50  OptionType::OptionType optionType, const std::string & docString = "");
51 
52  void print() const;
53  void parseArgument(int argc, char** argv);
54 
55  const OptionMode & getDefaultMode() const;
57 
58  const OptionMode & getMode(const std::string & name) const;
59  OptionMode & getMode(const std::string & name);
60 
61  bool isModeExist(const std::string & name) const;
62 
63  protected:
64  void copyOptionParser(const OptionParser & other);
65 
66  private:
70  bool checkArgument() const;
71 
72  template<typename T>
73  void checkOptionType(OptionType::OptionType optionType);
74 
76  const OptionMode * getCurrentlyParsedMode() const;
77 
78  bool completeOptionValue(std::string & possibleValue, const std::string & cursorOption, const std::string & prevCursorOption) const;
79  const Option * getLongOptionValue(std::string & valueToBeCompleted, const std::string & cursorOption) const;
80  const Option * getSplitOptionValue(std::string & valueToBeCompleted, const std::string & cursorOption, const std::string & prevCursorOption) const;
81 
82  void getPossibleOption(std::string & possibleOption, const std::string & cursorOption) const;
83  void getPossibleOtherOption(std::string & possibleOption, const std::string & cursorOption) const;
84 
90  size_t p_currentMode;
92  std::string p_exempleLongOption;
94  std::string p_exempleShortOption;
98  std::string p_programVersion;
99 };
100 
101 #include "OptionParser_impl.h"
102 
103 #endif
104 
OptionParser::p_enableHelpOption
bool p_enableHelpOption
True to enable automatically the printing of the help option when the program is called with –help or...
Definition: OptionParser.h:100
OptionParser::setExampleShortOption
void setExampleShortOption(const std::string &example)
Set the example usage of the program.
Definition: OptionParser.cpp:51
OptionParser::getMode
const OptionMode & getMode(const std::string &name) const
Get mode by name.
Definition: OptionParser.cpp:152
OptionParser::operator=
OptionParser & operator=(const OptionParser &other)
Definition of equal operator of OptionParser.
Definition: OptionParser.cpp:38
OptionMode.h
OptionParser::p_vecMode
VecMode p_vecMode
Vector of all the defined mode in the OptionParser.
Definition: OptionParser.h:92
OptionParser::p_programVersion
std::string p_programVersion
Program version to be printed on –version or -v option.
Definition: OptionParser.h:102
OptionParser::p_currentParserMode
OptionMode * p_currentParserMode
Current mode parsed.
Definition: OptionParser.h:90
OptionParser::copyOptionParser
void copyOptionParser(const OptionParser &other)
Copy function of OptionParser.
Definition: OptionParser.cpp:191
OptionParser::parseArgumentBashCompletion
void parseArgumentBashCompletion(ArgParser &parser)
Bash completion argument parsing mode.
Definition: OptionParser.cpp:244
OptionParser::initialisationOptionParser
void initialisationOptionParser()
Initialisation function of the class OptionParser.
Definition: OptionParser.cpp:201
OptionParser::checkOptionType
void checkOptionType(OptionType::OptionType optionType)
Check the given option type.
Definition: OptionParser_impl.h:129
OptionParser::getDefaultMode
const OptionMode & getDefaultMode() const
Get default mode.
Definition: OptionParser.cpp:137
OptionParser::getLongOptionValue
const Option * getLongOptionValue(std::string &valueToBeCompleted, const std::string &cursorOption) const
Get the long option value to be completed.
Definition: OptionParser.cpp:359
OptionParser::p_currentMode
size_t p_currentMode
Index of the current mode in the OptionParser.
Definition: OptionParser.h:94
OptionParser::closeMode
void closeMode()
Close the current mode and go back to be default one.
Definition: OptionParser.cpp:65
OptionParser::~OptionParser
virtual ~OptionParser()
Destructeur of OptionParser.
Definition: OptionParser.cpp:30
OptionParser::isModeExist
bool isModeExist(const std::string &name) const
Check if the given mode name does exist.
Definition: OptionParser.cpp:178
OptionParser::OptionParser
OptionParser(bool enableHelpOption=true, const std::string &programVersion="")
Default constructeur of OptionParser.
Definition: OptionParser.cpp:16
OptionParser::getCurrentlyParsedMode
const OptionMode * getCurrentlyParsedMode() const
Get the currently parsed OptionMode.
Definition: OptionParser.cpp:321
OptionParser::print
void print() const
Print all the options.
Definition: OptionParser.cpp:105
createReleaseCurl.parser
parser
Definition: createReleaseCurl.py:123
OptionParser::completeOptionValue
bool completeOptionValue(std::string &possibleValue, const std::string &cursorOption, const std::string &prevCursorOption) const
Complete the possible value of an option (FILENAME, DIRECTORY, FILE_OR_DIR)
Definition: OptionParser.cpp:338
OptionParser::checkArgument
bool checkArgument() const
Check the argument of the parser.
Definition: OptionParser.cpp:292
OptionParser::setExampleLongOption
void setExampleLongOption(const std::string &example)
Set the example usage of the program.
Definition: OptionParser.cpp:46
OptionParser
Parse the options passed to a program.
Definition: OptionParser.h:15
VecMode
std::vector< OptionMode > VecMode
Vector of mode.
Definition: OptionMode.h:73
OptionParser::getSplitOptionValue
const Option * getSplitOptionValue(std::string &valueToBeCompleted, const std::string &cursorOption, const std::string &prevCursorOption) const
Get the split option (without =) value to be completed.
Definition: OptionParser.cpp:387
OptionParser::addOption
void addOption(const std::string &longOption, const std::string &shortOption, OptionType::OptionType optionType, bool isRequired, const std::string &docString)
Add an option in the OptionParser.
Definition: OptionParser.cpp:76
OptionParser::parseArgumentNormalUse
void parseArgumentNormalUse(ArgParser &parser)
Classical argument parsing mode.
Definition: OptionParser.cpp:211
Option
Definition: Option.h:13
OptionType::OptionType
OptionType
Definition: OptionType.h:19
OptionParser::addMode
void addMode(const std::string &modeName)
Add a mode in the option.
Definition: OptionParser.cpp:56
OptionParser::getPossibleOtherOption
void getPossibleOtherOption(std::string &possibleOption, const std::string &cursorOption) const
Get the possible other options which can be used.
Definition: OptionParser.cpp:435
OptionParser::getParserMode
OptionMode & getParserMode(ArgParser &parser)
Get a mode if it exist.
Definition: OptionParser.cpp:306
OptionParser::getPossibleOption
void getPossibleOption(std::string &possibleOption, const std::string &cursorOption) const
Get the possible options which can be used.
Definition: OptionParser.cpp:416
OptionParser::p_exempleLongOption
std::string p_exempleLongOption
Usage example with long options.
Definition: OptionParser.h:96
OptionParser::p_exempleShortOption
std::string p_exempleShortOption
Usage example with short options.
Definition: OptionParser.h:98
OptionParser::parseArgument
void parseArgument(int argc, char **argv)
Parse the arguments passed to the program.
Definition: OptionParser.cpp:125
ArgParser
Parse the list of arguments passed to a program.
Definition: ArgParser.h:16
OptionMode
Describe a mode in the program arguments.
Definition: OptionMode.h:13
OptionParser_impl.h