Pakman
Arguments.h
1 #ifndef ARGUMENTS_H
2 #define ARGUMENTS_H
3 
4 #include <string>
5 #include <vector>
6 #include <unordered_map>
7 
8 class LongOptions;
9 
20 class Arguments
21 {
22  public:
23 
35  Arguments(const LongOptions& long_options, int argc, char *argv[]);
36 
38  ~Arguments() = default;
39 
46  bool isOptionalArgumentSet(const std::string& option_name) const;
47 
55  std::string optionalArgument(const std::string& option_name) const;
56 
58  int numberOfPositionalArguments() const;
59 
66  std::string positionalArgument(int index) const;
67 
68  private:
69 
70  // Optional arguments are internally represented by a unordered_map
71  std::unordered_map<std::string, std::string> m_optional_args;
72 
73  // Positional arguments are internally represented by a vector
74  std::vector<std::string> m_positional_args;
75 };
76 
77 #endif // ARGUMENTS_H
~Arguments()=default
bool isOptionalArgumentSet(const std::string &option_name) const
Definition: Arguments.cc:38
std::string positionalArgument(int index) const
Definition: Arguments.cc:57
int numberOfPositionalArguments() const
Definition: Arguments.cc:51
Arguments(const LongOptions &long_options, int argc, char *argv[])
Definition: Arguments.cc:9
std::string optionalArgument(const std::string &option_name) const
Definition: Arguments.cc:45