00001
00002 #include "CACHE.hpp"
00003
00004 #ifndef _H_CS_TRIPLET
00005 #define _H_CS_TRIPLET
00006
00008 template< typename T >
00009 class CS_Triplet {
00010
00011 protected:
00012
00014 unsigned long int row;
00015
00017 unsigned long int column;
00018
00019 public:
00020
00022 const unsigned long int i() {
00023 CACHE::getInstance()->access( &row, sizeof( unsigned long int ) );
00024 return row;
00025 }
00026
00028 const unsigned long int j() {
00029 CACHE::getInstance()->access( &column, sizeof( unsigned long int ) );
00030 return column;
00031 }
00032
00034 T value;
00035
00037 T& getValue() {
00038 CACHE::getInstance()->access( &value, sizeof( T ) );
00039 return value;
00040 }
00041
00043 CS_Triplet( unsigned long int i, unsigned long int j, T val ): row( i ), column( j ), value( val ) {}
00044
00046 CS_Triplet(): row( 0 ), column( 0 ), value( 0 ) {}
00047
00048 };
00049
00050 #endif
00051