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/typedvec.h"
00024 #include "csutil/csstrvec.h"
00025 #include "csutil/util.h"
00026
00027 struct csCommandLineOption;
00028
00030 class csCommandLineParser : public iCommandLineParser
00031 {
00032 private:
00033
00034 CS_BEGIN_TYPED_VECTOR (CS_DECLARE_TYPED_VECTOR_USERDELETE,
00035 csCommandLineOptionVector, csCommandLineOption)
00036 public:
00037 virtual int CompareKey (csSome Item, csConstSome Key, int Mode) const;
00038 CS_FINISH_TYPED_VECTOR;
00039
00040
00041 csCommandLineOptionVector Options;
00042
00043 csStrVector Names;
00044
00045
00046 csCommandLineOption *FindOption (const char *iName, int iIndex) const;
00047
00048 public:
00049 SCF_DECLARE_IBASE;
00050
00052 csCommandLineParser (iBase *Parent = NULL);
00054 csCommandLineParser (int argc, const char* const argv[]);
00056 virtual ~csCommandLineParser() {}
00057
00063 virtual void Initialize (int argc, const char* const argv[]);
00064
00066 virtual void Reset ();
00068 virtual const char *GetOption (const char *iName, int iIndex = 0) const;
00070 virtual const char *GetName (int iIndex = 0) const;
00072 virtual void AddOption (const char *iName, const char *iValue);
00074 virtual void AddName (const char *iName);
00076 virtual bool ReplaceOption (const char *iName, const char *iValue,
00077 int iIndex = 0);
00079 virtual bool ReplaceName (const char *iValue, int iIndex = 0);
00080 };
00081
00082 #endif // __CS_CMDLINE_H__