localindex.hh

Go to the documentation of this file.
00001 // $Id: localindex.hh 333 2005-10-04 15:34:23Z mblatt $
00002 
00003 #ifndef DUNE_ISTL_LOCALINDEX_HH
00004 #define DUNE_ISTL_LOCALINDEX_HH
00005 
00006 #include<cstddef>
00007 
00008 namespace Dune
00009 {
00010 
00011 
00025   enum LocalIndexState {VALID, DELETED};
00026   
00027     
00031   class LocalIndex
00032   {
00033   public:    
00038     LocalIndex() :
00039       localIndex_(0), state_(VALID){}
00040 
00041        
00046     LocalIndex(std::ptrdiff_t index) :
00047       localIndex_(index), state_(VALID){}
00052     inline const std::ptrdiff_t& local() const;
00053 
00057     inline operator std::ptrdiff_t() const;
00058 
00064     inline LocalIndex& operator=(std::ptrdiff_t index);
00065 
00070     inline LocalIndexState state() const;
00071 
00076     inline void setState(LocalIndexState state);
00077 
00078   private:
00080     std::ptrdiff_t localIndex_;
00081     
00088     char state_;
00089        
00090   };
00091 
00092 
00093     
00094   inline const std::ptrdiff_t& LocalIndex::local() const{
00095     return localIndex_;
00096   }
00097 
00098   inline LocalIndex::operator std::ptrdiff_t() const{
00099     return localIndex_;
00100   }
00101 
00102   inline LocalIndex& LocalIndex::operator=(std::ptrdiff_t index){
00103     localIndex_ = index;
00104     return *this;
00105   }
00106     
00107   inline LocalIndexState LocalIndex::state() const{
00108     return  static_cast<LocalIndexState>(state_);
00109   }
00110 
00111   inline void LocalIndex::setState(LocalIndexState state){
00112     state_ = static_cast<char>(state);
00113   }
00114 
00117 } // namespace Dune
00118 
00119 #endif

Generated on 6 Nov 2008 with Doxygen (ver 1.5.6) [logfile].