00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GC_INTRANKVIEW_HH_
00021 #define GC_INTRANKVIEW_HH_
00022
00023 #include <gecode/int.hh>
00024
00025 namespace Gecode {
00026 namespace Int {
00027
00028 class IntRankView : public Gecode::Int::IntView {
00029 protected:
00030 unsigned int rank;
00031 public:
00032
00034 IntRankView(void) : Gecode::Int::IntView(), rank(0)
00035 {}
00037 IntRankView(const Gecode::IntVar& x) : Gecode::Int::IntView(x), rank(0)
00038 {}
00040 IntRankView(const Gecode::IntVar& x, unsigned int r) : Gecode::Int::IntView(x), rank(r)
00041 {}
00042
00044 unsigned int getRank(void) const { return rank; }
00046 void setRank(unsigned int r) { rank = r; }
00047
00048 void update(Space* home, bool share, IntRankView& x) {
00049 IntView::update(home, share, (IntView&)x);
00050 rank = x.getRank();
00051 }
00052
00053 };
00054
00055
00056 }
00057 }
00058
00059 #endif