00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _VMemMap_incl_
00020 #define _VMemMap_incl_
00021
00022
00023 #include <rel/VMap.h>
00024
00025 namespace rel
00026 {
00027
00031 class VMemMap : public VMap
00032 {
00033 public:
00034
00035 VMemMap();
00036 virtual ~VMemMap();
00037
00038
00039 virtual VMapPtr createDirectory(const string &name);
00040
00041
00042 virtual OpaqueValue find(const string &name);
00043
00044
00045 virtual VMapIterator begin();
00046 virtual VMapIterator end();
00047 virtual VMapIterator at(const string &name);
00048
00049
00050
00051 virtual ErrorCode insert(const string &name, const OpaqueValue &value);
00052
00053
00054 virtual ErrorCode assign(const string &name, const OpaqueValue &value);
00055
00056
00057 virtual ErrorCode erase(const string &name);
00058
00062 virtual ErrorCode clear();
00063
00064
00065 protected:
00066 virtual void advanceIterator(const OpaqueValue &) const;
00067 virtual bool equalIteratorData(const OpaqueValue &,
00068 const OpaqueValue &) const;
00069 virtual void assignIteratorData(const OpaqueValue &,
00070 const OpaqueValue &) const;
00071 virtual void getKeyValue(const OpaqueValue &,
00072 std::pair<std::string,OpaqueValue> *result);
00073
00074 private:
00075 struct VMapData *data;
00076 };
00077
00078
00079 }
00080
00081
00082 #endif
00083