クラス テンプレート Onikiri::CacheExtraStateTable< ValueType, ContainerType >

#include <CacheExtraStateTable.h>

Onikiri::CacheExtraStateTable< ValueType, ContainerType >のコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public 型

typedef CacheTable::const_iterator const_iterator
typedef ContainerType::const_reference ConstReferenceType
typedef CacheTable::iterator iterator
typedef ContainerType::reference ReferenceType

Public メソッド

 CacheExtraStateTable ()
 CacheExtraStateTable (Cache *cache)
ConstReferenceType operator[] (const const_iterator &i) const
ReferenceType operator[] (const const_iterator &i)
ConstReferenceType operator[] (const iterator &i) const
ReferenceType operator[] (const iterator &i)
void Resize (Cache *cache, const ValueType &initValue=ValueType())

Protected メソッド

template<typename T>
size_t GetTableIndex (const T &i) const

Protected 変数

size_t m_indexCount
ContainerType m_table
size_t m_wayCount

説明

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
class Onikiri::CacheExtraStateTable< ValueType, ContainerType >

CacheExtraStateTable.h50 行で定義されています。


型定義

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
typedef CacheTable::const_iterator Onikiri::CacheExtraStateTable< ValueType, ContainerType >::const_iterator

CacheExtraStateTable.h57 行で定義されています。

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
typedef ContainerType::const_reference Onikiri::CacheExtraStateTable< ValueType, ContainerType >::ConstReferenceType

CacheExtraStateTable.h55 行で定義されています。

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
typedef CacheTable::iterator Onikiri::CacheExtraStateTable< ValueType, ContainerType >::iterator

CacheExtraStateTable.h56 行で定義されています。

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
typedef ContainerType::reference Onikiri::CacheExtraStateTable< ValueType, ContainerType >::ReferenceType

CacheExtraStateTable.h54 行で定義されています。


コンストラクタとデストラクタ

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
Onikiri::CacheExtraStateTable< ValueType, ContainerType >::CacheExtraStateTable ( Cache cache  )  [inline]

CacheExtraStateTable.h86 行で定義されています。

00087         {
00088             Resize( cache );
00089         }

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
Onikiri::CacheExtraStateTable< ValueType, ContainerType >::CacheExtraStateTable (  )  [inline]

CacheExtraStateTable.h91 行で定義されています。

00091                                :
00092             m_indexCount(0),
00093             m_wayCount(0)
00094         {
00095         }


関数

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
template<typename T>
size_t Onikiri::CacheExtraStateTable< ValueType, ContainerType >::GetTableIndex ( const T &  i  )  const [inline, protected]

CacheExtraStateTable.h65 行で定義されています。

参照元 Onikiri::CacheExtraStateTable< Onikiri::PrefetcherBase::ExLineState >::operator[]().

00066         {
00067             ASSERT(
00068                 m_wayCount > 0 && m_indexCount > 0, 
00069                 "CacheExtraStateTable is not initialized." 
00070             );
00071             ASSERT( 
00072                 i.way() < m_wayCount && i.index() < m_indexCount,
00073                 "The iterator points out of range."
00074             );
00075             return i.way() + i.index() * m_wayCount;
00076         }

Here is the caller graph for this function:

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
ConstReferenceType Onikiri::CacheExtraStateTable< ValueType, ContainerType >::operator[] ( const const_iterator i  )  const [inline]

CacheExtraStateTable.h113 行で定義されています。

00114         {
00115             return m_table[ GetTableIndex(i) ];
00116         }

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
ReferenceType Onikiri::CacheExtraStateTable< ValueType, ContainerType >::operator[] ( const const_iterator i  )  [inline]

CacheExtraStateTable.h108 行で定義されています。

00109         {
00110             return m_table[ GetTableIndex(i) ];
00111         }

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
ConstReferenceType Onikiri::CacheExtraStateTable< ValueType, ContainerType >::operator[] ( const iterator i  )  const [inline]

CacheExtraStateTable.h103 行で定義されています。

00104         {
00105             return m_table[ GetTableIndex(i) ];
00106         }

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
ReferenceType Onikiri::CacheExtraStateTable< ValueType, ContainerType >::operator[] ( const iterator i  )  [inline]

CacheExtraStateTable.h98 行で定義されています。

00099         {
00100             return m_table[ GetTableIndex(i) ];
00101         }

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
void Onikiri::CacheExtraStateTable< ValueType, ContainerType >::Resize ( Cache cache,
const ValueType &  initValue = ValueType() 
) [inline]

CacheExtraStateTable.h79 行で定義されています。

参照元 Onikiri::CacheExtraStateTable< Onikiri::PrefetcherBase::ExLineState >::CacheExtraStateTable()Onikiri::Cache::Initialize().

00080         {
00081             m_indexCount = cache->GetIndexCount();
00082             m_wayCount   = cache->GetWayCount();
00083             m_table.resize( m_indexCount * m_wayCount, initValue );
00084         }

Here is the caller graph for this function:


変数

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
size_t Onikiri::CacheExtraStateTable< ValueType, ContainerType >::m_indexCount [protected]

CacheExtraStateTable.h61 行で定義されています。

参照元 Onikiri::CacheExtraStateTable< Onikiri::PrefetcherBase::ExLineState >::GetTableIndex()Onikiri::CacheExtraStateTable< Onikiri::PrefetcherBase::ExLineState >::Resize().

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
ContainerType Onikiri::CacheExtraStateTable< ValueType, ContainerType >::m_table [protected]

CacheExtraStateTable.h60 行で定義されています。

参照元 Onikiri::CacheExtraStateTable< Onikiri::PrefetcherBase::ExLineState >::operator[]()Onikiri::CacheExtraStateTable< Onikiri::PrefetcherBase::ExLineState >::Resize().

template<typename ValueType, typename ContainerType = std::vector<ValueType>>
size_t Onikiri::CacheExtraStateTable< ValueType, ContainerType >::m_wayCount [protected]

CacheExtraStateTable.h62 行で定義されています。

参照元 Onikiri::CacheExtraStateTable< Onikiri::PrefetcherBase::ExLineState >::GetTableIndex()Onikiri::CacheExtraStateTable< Onikiri::PrefetcherBase::ExLineState >::Resize().


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 14:53:20 2013に生成されました。  doxygen 1.4.7