00001
00002
00003
00004
00005
00006
00007
00008
00053 #ifdef _MSC_VER
00054 #pragma once
00055 #endif
00056
00057
00058 #ifndef OGDF_HASHITERATOR2D_H
00059 #define OGDF_HASHITERATOR2D_H
00060
00061
00062 namespace ogdf {
00063
00064
00069 template< class I1_, class I2_, class E_,
00070 class Hash1_ = DefHashFunc<I1_>,
00071 class Hash2_ = DefHashFunc<I2_> >
00072 class HashConstIterator2D :
00073 private HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >
00074 {
00075 public:
00077 HashConstIterator2D() {};
00078
00080 HashConstIterator2D(const HashConstIterator2D<I1_,I2_,E_,Hash1_,Hash2_> &it)
00081 : HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >(it) { }
00082
00084 HashConstIterator2D(const HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> > &it)
00085 : HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >(it) { }
00086
00088 HashConstIterator2D<I1_,I2_,E_,Hash1_,Hash2_> &
00089 operator=(const HashConstIterator2D<I1_,I2_,E_,Hash1_,Hash2_> &it)
00090 {
00091 HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >::operator=(it);
00092 return *this;
00093 }
00094
00096 bool valid() const {
00097 return HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >::valid();
00098 }
00099
00101 const I1_ &key1() const {
00102 return HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >::key().x1();
00103 }
00104
00106 const I2_ &key2() const {
00107 return HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >::key().x2();
00108 }
00109
00111 const E_ &info() const {
00112 return HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >::info();
00113 }
00114
00116 HashConstIterator2D<I1_,I2_,E_,Hash1_,Hash2_> &operator++() {
00117 HashConstIterator<Tuple2<I1_,I2_>,E_,HashFuncTuple<I1_,I2_,Hash1_,Hash2_> >::operator++();
00118 return *this;
00119 }
00120 };
00121
00122 }
00123
00124
00125
00126 #endif
00127