00001 #ifndef _CTBmapNode_HXX
00002 #define _CTBmapNode_HXX 1
00003
00008
00009
00010
00011
00012
00013
00014
00015
00016 template <class K, class V, class C>
00017 class CTBmapNode : public CTBbtreeNode {
00018 public:
00019
00020 typedef CTBmap<K,V,C> Map;
00021 typedef CTBmapNode<K,V,C> Node;
00022
00023 CTBmapNode();
00024 CTBmapNode(const K& key);
00025 CTBmapNode(const K& key, const V& value);
00026 CTBmapNode(const CTBpair<const K,V>& pair);
00027
00028 ~CTBmapNode();
00029
00030 virtual CTBbtreeNode* Clone() const;
00031
00032 const K& Key() const;
00033 V& Value();
00034 const V& Value() const;
00035
00036 CTBpair<const K,V>& Pair();
00037 const CTBpair<const K,V>& Pair() const;
00038
00039 CTBmapNode<K,V,C>* Up() const;
00040 CTBmapNode<K,V,C>* Left() const;
00041 CTBmapNode<K,V,C>* Right() const;
00042
00043 CTBmapNode<K,V,C>* Next() const;
00044 CTBmapNode<K,V,C>* Prev() const;
00045
00046 CTBmapNode<K,V,C>* Skip(CTBint i_offset) const;
00047
00048 private:
00049
00050 CTBmapNode(const CTBmapNode<K,V,C>& rhs);
00051 CTBmapNode<K,V,C>& operator=(const CTBmapNode<K,V,C>& rhs);
00052
00053 private:
00054
00055 CTBpair<const K,V> m_pair;
00056 };
00057
00058 template <class K, class V, class C>
00059 class CTBclone<CTBmapNode<K,V,C> > : public CTBcloneable<CTBmapNode<K,V,C> > {};
00060
00061
00062
00063
00064
00065
00066
00067
00068 #include "CTBmapNode.icc"
00069
00070 #endif