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 #ifndef ARARGUMENTBUILDER_H
00028 #define ARARGUMENTBUILDER_H
00029
00030 #include "ariaTypedefs.h"
00031
00033 class ArArgumentBuilder
00034 {
00035 public:
00037 ArArgumentBuilder(size_t argvLen = 512);
00039 ArArgumentBuilder(const ArArgumentBuilder &builder);
00041 virtual ~ArArgumentBuilder();
00042 #ifndef SWIG
00043
00044 void add(const char *str, ...);
00045 #endif
00046
00047 void addPlain(const char *str, int position = -1);
00049 void addStrings(char **argv, int argc, int position = -1);
00051 void addStrings(int argc, char **argv, int position = -1);
00053 const char *getFullString(void) const;
00055 void setFullString(const char *str);
00057 const char *getExtraString(void) const;
00059 void setExtraString(const char *str);
00061 void log(void) const;
00063 size_t getArgc(void) const;
00065 char** getArgv(void) const;
00067 const char* getArg(size_t whichArg) const;
00069 bool isArgBool(size_t whichArg) const;
00071 bool getArgBool(size_t whichArg) const;
00073 bool isArgInt(size_t whichArg) const;
00075 int getArgInt(size_t whichArg) const;
00077 bool isArgDouble(size_t whichArg) const;
00079 double getArgDouble(size_t whichArg) const;
00081 void removeArg(size_t which);
00083 void compressQuoted(bool stripQuotationMarks = false);
00084 protected:
00085 void ArArgumentBuilder::internalAdd(const char *str,
00086 int position = -1);
00087 size_t getArgvLen(void) const { return myArgvLen; }
00088
00089 size_t myOrigArgc;
00090
00091 size_t myArgc;
00092
00093 char **myArgv;
00094
00095 size_t myArgvLen;
00096
00097 std::string myExtraString;
00098
00099 std::string myFullString;
00100
00101 bool myFirstAdd;
00102 };
00103
00104 #endif // ARARGUMENTBUILDER_H