Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_KEYVAL_H__
00020 #define __CS_KEYVAL_H__
00021
00026 #include "csextern.h"
00027
00028 #include "csutil/csobject.h"
00029 #include "csutil/csstring.h"
00030 #include "csutil/hash.h"
00031 #include "csutil/scf_implementation.h"
00032 #include "csutil/set.h"
00033 #include "ivaria/keyval.h"
00034
00043 class CS_CRYSTALSPACE_EXPORT csKeyValuePair :
00044 public scfImplementationExt1<csKeyValuePair, csObject, iKeyValuePair>
00045 {
00046 private:
00047 const char *m_Value;
00048 csHash<csString, csString> values;
00049 csSet<csString> names;
00050 bool editoronly;
00051 public:
00053 csKeyValuePair (const char* Key, const char* Value);
00055 csKeyValuePair (const char* Key);
00057 virtual ~csKeyValuePair ();
00058
00060 void SetEditorOnly (bool flag)
00061 { editoronly = flag; }
00062
00065 virtual iObject *QueryObject() { return (csObject*)this; }
00066 virtual const char *GetKey () const;
00067 virtual void SetKey (const char* s);
00068 virtual const char *GetValue () const;
00069 virtual const char *GetValue (const char* vname) const;
00070 virtual void SetValue (const char* value);
00071 virtual void SetValue (const char* vname, const char* value);
00072
00073 virtual csRef<iStringArray> GetValueNames () const;
00074
00075 virtual bool GetEditorOnly () const
00076 { return editoronly; }
00078 };
00079
00080 #endif // __CS_KEYVAL_H__