00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef ARGUMENT_HEADER // Begin the Header Guard to prevent multiple
00034 #define ARGUMENT_HEADER // inclusions.
00035
00036 #include <string>
00037 #include <vector>
00038
00039 namespace commandl
00040 {
00041
00080 class argument
00081 {
00082
00083
00084 public:
00085 argument
00086 (
00087 std::vector<std::string>,
00088 std::string,
00089 std::string,
00090 bool,
00091 int,
00092 bool
00093 );
00094
00095 argument
00096 (
00097 std::string,
00098 std::string,
00099 std::string,
00100 bool,
00101 int,
00102 bool
00103 );
00104
00105 virtual ~argument()
00106 {};
00107
00108
00109 public:
00110
00111 virtual
00112 void operator() (
00113 const std::string&,
00114 const std::string&,
00115 const unsigned long
00116 ) = 0;
00117 virtual
00118 void operator() (
00119 const std::string&,
00120 const std::string&,
00121 const std::string&,
00122 const std::string&,
00123 const unsigned long
00124 ) = 0;
00125 virtual
00126 void operator() (
00127 const std::vector<std::string>&,
00128 const std::string&,
00129 const std::string&,
00130 const std::string&,
00131 const unsigned long
00132 ) = 0;
00133
00134 virtual std::vector<std::string> get_keys() const;
00135 virtual bool required() const;
00136 virtual int values_size() const;
00137 virtual bool values_required() const;
00138 virtual bool was_found() const;
00139 virtual unsigned long order() const;
00140 virtual std::string description() const;
00141 virtual std::string value_description() const;
00142
00143
00144 public:
00145
00146 virtual void add_key( const std::string& );
00147 virtual void found( const unsigned long );
00148
00149
00150
00151 protected:
00152
00153
00154
00155
00156
00157
00158
00159
00160 private:
00161
00162
00163
00164 protected:
00165
00169 std::vector<std::string> Keys;
00172 bool Argument_Required;
00175 int Number_Of_Values;
00179 bool Values_Required;
00184 unsigned long Found;
00188 std::string Description;
00192 std::string Value_Description;
00193
00194
00195 };
00196
00197 }
00198
00199 #endif // End the Header Guard
00200