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