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 ARARGUMENTBUILDER_H
00027 #define ARARGUMENTBUILDER_H
00028
00029 #include "ariaTypedefs.h"
00030
00032 class ArArgumentBuilder
00033 {
00034 public:
00036 AREXPORT ArArgumentBuilder(size_t argvLen = 512, char extraSpaceChar = '\0');
00038 AREXPORT ArArgumentBuilder(const ArArgumentBuilder &builder);
00040 AREXPORT virtual ~ArArgumentBuilder();
00041 #ifndef SWIG
00042
00045 AREXPORT void add(const char *str, ...);
00046 #endif
00047
00048 AREXPORT void addPlain(const char *str, int position = -1);
00050 AREXPORT void addPlainAsIs(const char *str, int position = -1);
00052 AREXPORT void addStrings(char **argv, int argc, int position = -1);
00054 AREXPORT void addStrings(int argc, char **argv, int position = -1);
00056 AREXPORT void addStringsAsIs(int argc, char **argv, int position = -1);
00058 AREXPORT const char *getFullString(void) const;
00060 AREXPORT void setFullString(const char *str);
00062 AREXPORT const char *getExtraString(void) const;
00064 AREXPORT void setExtraString(const char *str);
00066 AREXPORT void log(void) const;
00068 AREXPORT size_t getArgc(void) const;
00070 AREXPORT char** getArgv(void) const;
00072 AREXPORT const char* getArg(size_t whichArg) const;
00074 AREXPORT bool isArgBool(size_t whichArg) const;
00076 AREXPORT bool getArgBool(size_t whichArg) const;
00078 AREXPORT bool isArgInt(size_t whichArg) const;
00080 AREXPORT int getArgInt(size_t whichArg) const;
00082 AREXPORT bool isArgDouble(size_t whichArg) const;
00084 AREXPORT double getArgDouble(size_t whichArg) const;
00086 AREXPORT void removeArg(size_t which);
00088 AREXPORT void compressQuoted(bool stripQuotationMarks = false);
00089 protected:
00090 AREXPORT void internalAdd(const char *str, int position = -1);
00091 AREXPORT void internalAddAsIs(const char *str, int position = -1);
00092 size_t getArgvLen(void) const { return myArgvLen; }
00093
00094 size_t myOrigArgc;
00095
00096 size_t myArgc;
00097
00098 char **myArgv;
00099
00100 size_t myArgvLen;
00101
00102 std::string myExtraString;
00103
00104 std::string myFullString;
00105
00106 bool myFirstAdd;
00107
00108 char myExtraSpace;
00109 };
00110
00111 #endif // ARARGUMENTBUILDER_H