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 #ifndef ARARGUMENTPARSER_H
00027 #define ARARGUMENTPARSER_H
00028
00029 #include "ariaTypedefs.h"
00030 #include "ArArgumentBuilder.h"
00031
00033
00051 class ArArgumentParser
00052 {
00053 public:
00055 AREXPORT ArArgumentParser(int *argc, char **argv);
00057 AREXPORT ArArgumentParser(ArArgumentBuilder *builder);
00059 AREXPORT ~ArArgumentParser();
00061 AREXPORT bool checkArgument(const char *argument);
00063 AREXPORT char *checkParameterArgument(char *argument,
00064 bool returnFirst = false);
00066 AREXPORT bool checkParameterArgumentString(char *argument,
00067 const char **dest,
00068 bool *wasReallySet = NULL,
00069 bool returnFirst = false);
00071 AREXPORT bool checkParameterArgumentInteger(char *argument, int *dest,
00072 bool *wasReallySet = NULL,
00073 bool returnFirst = false);
00075 AREXPORT bool checkParameterArgumentBool(char *argument, bool *dest,
00076 bool *wasReallySet = NULL,
00077 bool returnFirst = false);
00079 AREXPORT bool checkParameterArgumentFloat(char *argument, float *dest,
00080 bool *wasReallySet = NULL, bool returnFirst = false);
00082 AREXPORT void addDefaultArgument(const char *argument, int position = -1);
00084 AREXPORT void loadDefaultArguments(int positon = 1);
00086 AREXPORT bool checkHelpAndWarnUnparsed(unsigned int numArgsOkay = 0);
00088 AREXPORT size_t getArgc(void) const;
00090 AREXPORT char** getArgv(void) const;
00092 AREXPORT const char* getArg(size_t whichArg) const;
00094 AREXPORT void log(void) const;
00096 AREXPORT void removeArg(size_t which);
00098 AREXPORT static void addDefaultArgumentFile(const char *file);
00100 AREXPORT static void addDefaultArgumentEnv(const char *env);
00102 AREXPORT static void logDefaultArgumentLocations(void);
00103 #ifndef SWIG
00104
00107 AREXPORT bool checkArgumentVar(char *argument, ...);
00111 AREXPORT char *checkParameterArgumentVar(char *argument, ...);
00115 AREXPORT bool checkParameterArgumentStringVar(bool *wasReallySet,
00116 const char **dest,
00117 char *argument, ...);
00121 AREXPORT bool checkParameterArgumentBoolVar(bool *wasReallySet, bool *dest,
00122 char *argument, ...);
00126 AREXPORT bool checkParameterArgumentIntegerVar(bool *wasReallySet, int *dest,
00127 char *argument, ...);
00128 #endif
00129 protected:
00130 static std::list<std::string> ourDefaultArgumentLocs;
00131 static std::list<bool> ourDefaultArgumentLocIsFile;
00132 bool myOwnBuilder;
00133 ArArgumentBuilder *myBuilder;
00134 bool myUsingBuilder;
00135 char **myArgv;
00136 int *myArgc;
00137 char myEmptyArg[1];
00138 };
00139
00140
00141 #endif // ARARGUMENTPARSER_H