00001 /* piecePairTable.h 00002 */ 00003 #ifndef EVAL_PPAIR_PIECEPAIRTABLE_H 00004 #define EVAL_PPAIR_PIECEPAIRTABLE_H 00005 00006 #include "osl/eval/ppair/piecePairIndex.h" 00007 00008 namespace osl 00009 { 00010 namespace eval 00011 { 00012 namespace ppair 00013 { 00020 template <class T> 00021 class PiecePairTable : public PiecePairIndex 00022 { 00023 public: 00024 typedef T value_type; 00025 protected: 00030 mutable CArray<value_type, maxPairIndex> values; 00031 PiecePairTable() { values.fill(); } 00032 ~PiecePairTable() {} 00033 public: 00034 int value(unsigned int i) const 00035 { 00036 return values[i]; 00037 } 00038 value_type& valueOf(unsigned int i1, unsigned int i2) 00039 { 00040 const unsigned int index = indexOf(i1,i2); 00041 return values[index]; 00042 } 00043 value_type& valueOf(Piece p1, Piece p2) 00044 { 00045 const unsigned int index = indexOf(p1,p2); 00046 return values[index]; 00047 } 00048 int valueOf(unsigned int i1, unsigned int i2) const 00049 { 00050 const unsigned int index = indexOf(i1,i2); 00051 return values[index]; 00052 } 00053 int valueOf(Piece p1, Piece p2) const 00054 { 00055 const unsigned int index = indexOf(p1,p2); 00056 return values[index]; 00057 } 00058 00059 }; 00060 00061 } // namespace ppair 00062 } // namespace eval 00063 } // namespace osl 00064 00065 00066 #endif /* EVAL_PPAIR_PIECEPAIRTABLE_H */ 00067 // ;;; Local Variables: 00068 // ;;; mode:c++ 00069 // ;;; c-basic-offset:2 00070 // ;;; End: