00001
00002
00003 #ifndef _Args_h
00004 #define _Args_h
00005
00010 #include <string>
00011 #include <list>
00012
00020 class Args
00021 {
00022
00023 public:
00024
00031 Args(int argc, const char *const argv[]);
00032
00036 virtual ~Args();
00037
00042 Args(const Args& rhs);
00043
00049 Args& operator=(const Args& rhs);
00050
00056 bool operator==(const Args& rhs) const;
00057
00063 bool operator!=(const Args& rhs) const;
00064
00070 bool go() const;
00071
00076 const std::string& argv0() const;
00077
00082 virtual std::string usage() const;
00083
00087 typedef std::list<std::string> ProblemReport;
00088
00092 typedef ProblemReport::iterator ProblemReportIterator;
00093
00097 typedef ProblemReport::const_iterator ConstProblemReportIterator;
00098
00103 std::string report();
00104
00109 bool existingProblems() const;
00110
00111
00112 protected:
00113
00118 void problem(const std::string argument);
00119
00120 bool go_state;
00121
00122
00123 private:
00124
00128 void initializeReport();
00129
00130 std::string argv_0;
00131 ProblemReport problem_report;
00132 ProblemReportIterator problem_iterator;
00133 bool problem_flag;
00134 bool problem_fifo_dirty;
00135 };
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170 #endif