00001 // $Id: GiGaKineRefTable.h,v 1.7 2007/10/02 13:14:50 gcorti Exp $ 00002 #ifndef GIGACNV_GIGAKINEREFTABLE_H 00003 #define GIGACNV_GIGAKINEREFTABLE_H 1 00004 00005 // Include files 00006 00007 // STD & STL 00008 #include "GiGa/GiGaHashMap.h" 00009 #include <functional> 00010 00011 // GiGaCnv 00012 #include "GiGaCnv/GiGaKineRefTableEntry.h" 00013 00024 class GiGaKineRefTable: 00025 public std::unary_function<const int,GiGaKineRefTableEntry> 00026 { 00027 public: 00029 typedef int Index ; 00030 typedef GiGaKineRefTableEntry Entry ; 00032 typedef GiGaHashMap<int,GiGaKineRefTableEntry> Table ; 00033 00034 public: 00035 00037 GiGaKineRefTable(); 00038 00040 virtual ~GiGaKineRefTable(); 00041 00046 inline Entry& operator() ( const Index& index ) 00047 { return m_table[ index ] ; }; 00048 00053 inline const Entry& operator() ( const Index& index ) const 00054 { return m_table[ index ] ; }; 00055 00060 inline Entry& operator[] ( const Index& index ) 00061 { return (*this)( index ); }; 00062 00067 inline const Entry& operator[] ( const Index& index ) const 00068 { return (*this)( index ); } ; 00069 00071 inline void clear() { m_table.clear() ; } 00072 00074 inline void resize ( const unsigned long /* size */ ) 00075 { /* m_table.reserve ( size ) */ ; }; 00076 00078 inline void reserve ( const unsigned long /* size */ ) 00079 { /* m_table.reserve ( size ); */ }; 00080 00081 private: 00082 00084 GiGaKineRefTable( const GiGaKineRefTable& ); 00085 00087 GiGaKineRefTable& operator=( const GiGaKineRefTable& ); 00088 00089 private: 00090 00091 mutable Table m_table; 00092 00093 }; 00094 00095 #endif