dune-common  2.2.0
localindex.hh
Go to the documentation of this file.
1 // $Id$
2 
3 #ifndef DUNE_COMMON_LOCALINDEX_HH
4 #define DUNE_COMMON_LOCALINDEX_HH
5 
6 #include<cstddef>
7 
8 namespace Dune
9 {
10 
11 
26 
27 
31  class LocalIndex
32  {
33  public:
39  localIndex_(0), state_(VALID){}
40 
41 
46  LocalIndex(std::size_t index) :
47  localIndex_(index), state_(VALID){}
52  inline const std::size_t& local() const;
53 
57  inline operator std::size_t() const;
58 
64  inline LocalIndex& operator=(std::size_t index);
65 
70  inline LocalIndexState state() const;
71 
76  inline void setState(LocalIndexState state);
77 
78  private:
80  std::size_t localIndex_;
81 
88  char state_;
89 
90  };
91 
92 
93 
94  inline const std::size_t& LocalIndex::local() const{
95  return localIndex_;
96  }
97 
98  inline LocalIndex::operator std::size_t() const{
99  return localIndex_;
100  }
101 
102  inline LocalIndex& LocalIndex::operator=(std::size_t index){
103  localIndex_ = index;
104  return *this;
105  }
106 
108  return static_cast<LocalIndexState>(state_);
109  }
110 
112  state_ = static_cast<char>(state);
113  }
114 
117 } // namespace Dune
118 
119 #endif