piecePairTable.h
Go to the documentation of this file.
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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines