ARC SDK
OptionParser.h
1 // -*- indent-tabs-mode: nil -*-
2 
3 #ifndef __ARC_OPTION_H__
4 #define __ARC_OPTION_H__
5 
6 #include <list>
7 #include <string>
8 
9 namespace Arc {
10 
11  class OptionBase;
12 
14 
30  class OptionParser {
31 
32  public:
34 
39  OptionParser(const std::string& arguments = "",
40  const std::string& summary = "",
41  const std::string& description = "");
42 
43  ~OptionParser();
44 
46 
52  void AddOption(const char shortOpt,
53  const std::string& longOpt,
54  const std::string& optDesc,
55  bool& val);
56 
58 
65  void AddOption(const char shortOpt,
66  const std::string& longOpt,
67  const std::string& optDesc,
68  const std::string& argDesc,
69  int& val);
70 
72 
79  void AddOption(const char shortOpt,
80  const std::string& longOpt,
81  const std::string& optDesc,
82  const std::string& argDesc,
83  std::string& val);
84 
86 
93  void AddOption(const char shortOpt,
94  const std::string& longOpt,
95  const std::string& optDesc,
96  const std::string& argDesc,
97  std::list<std::string>& val);
98 
100 
107  std::list<std::string> Parse(int argc, char **argv);
108 
109  private:
110  std::string arguments;
111  std::string summary;
112  std::string description;
113  std::list<OptionBase*> options;
114  };
115 
116 } // namespace Arc
117 
118 #endif // __ARC_OPTION_H__