seapodym-parallel
Fish dynamics models with parameter estimations
Loading...
Searching...
No Matches
CmdLineArgParser.h
1
9
10#include <cstdlib>
11#include <iostream>
12#include <string>
13#include <map>
14#include <limits>
15
16#ifndef CMD_LINE_ARG_PARSER_H
17#define CMD_LINE_ARG_PARSER_H
18
23
24 public:
25
30 // always activate -h
31 this->set("-h", false, "Print help.");
32 this->footer = "\n";
33 }
34
35 // Setters
42 void set(const std::string& name, double defaultVal,
43 const std::string& help);
44 void set(const std::string& name, int defaultVal,
45 const std::string& help);
46 void set(const std::string& name, const std::string& defaultVal,
47 const std::string& help);
48 void set(const std::string& name, bool defaultVal,
49 const std::string& help);
50
57 bool parse(int argc, char *argv[]);
58
63 void setPurpose(const std::string& purpose) {
64 this->purpose = purpose;
65 }
66
70 void print() const;
71
75 void help() const;
76
81 void addFootnote(const std::string& note) {
82 this->footer = note + "\n" + this->footer;
83 }
84
85 // Accessors
86
92 template <class T>
93 T get(const std::string& name) const;
94
95 private:
96
98 std::map<std::string, double> doubleArg;
99 std::map<std::string, int> intArg;
100 std::map<std::string, std::string> stringArg;
101 std::map<std::string, bool> boolArg;
102
104 std::map<std::string, std::string> doubleArgHelp;
105 std::map<std::string, std::string> intArgHelp;
106 std::map<std::string, std::string> stringArgHelp;
107 std::map<std::string, std::string> boolArgHelp;
108
110 std::string execName;
111
113 std::string purpose;
114
116 std::string footer;
117};
118
119#endif // CMD_LINE_ARG_PARSER_H
void addFootnote(const std::string &note)
Definition CmdLineArgParser.h:81
CmdLineArgParser()
Definition CmdLineArgParser.h:29
T get(const std::string &name) const
Definition CmdLineArgParser.cpp:38
void help() const
Definition CmdLineArgParser.cpp:200
void print() const
Definition CmdLineArgParser.cpp:181
void set(const std::string &name, double defaultVal, const std::string &help)
Parse command line arguments.
Definition CmdLineArgParser.cpp:14
bool parse(int argc, char *argv[])
Definition CmdLineArgParser.cpp:74
void setPurpose(const std::string &purpose)
Definition CmdLineArgParser.h:63