00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_CMDLINE_H__
00020 #define __CS_CMDLINE_H__
00021
00022 #include "iutil/cmdline.h"
00023 #include "csutil/parray.h"
00024 #include "csutil/stringarray.h"
00025 #include "csutil/util.h"
00026
00028 struct csCommandLineOption
00029 {
00031 char *Name;
00033 char *Value;
00035 csCommandLineOption (char *iName, char *iValue)
00036 {
00037 Name = iName;
00038 Value = iValue;
00039 }
00041 ~csCommandLineOption ()
00042 { delete [] Name; delete [] Value; }
00043 };
00044
00045
00047 class csCommandLineParser : public iCommandLineParser
00048 {
00049 private:
00051 typedef csPDelArray<csCommandLineOption> csCommandLineOptionVector;
00052
00054 csCommandLineOptionVector Options;
00056 csStringArray Names;
00057
00059 csCommandLineOption *FindOption (const char *iName, int iIndex) const;
00060
00062 char* appDir;
00063 public:
00064 SCF_DECLARE_IBASE;
00065
00067 csCommandLineParser (iBase *Parent = 0);
00069 csCommandLineParser (int argc, const char* const argv[]);
00071 virtual ~csCommandLineParser();
00072
00078 virtual void Initialize (int argc, const char* const argv[]);
00079
00081 virtual void Reset ();
00083 virtual const char *GetOption (const char *iName, int iIndex = 0) const;
00085 virtual const char *GetName (int iIndex = 0) const;
00087 virtual void AddOption (const char *iName, const char *iValue);
00089 virtual void AddName (const char *iName);
00091 virtual bool ReplaceOption (const char *iName, const char *iValue,
00092 int iIndex = 0);
00094 virtual bool ReplaceName (const char *iValue, int iIndex = 0);
00098 virtual bool GetBoolOption (const char *iName,
00099 bool defaultValue = false);
00100
00102 virtual const char* GetAppDir ();
00103 };
00104
00105 #endif // __CS_CMDLINE_H__