クラス テンプレート shttl::setassoc_table_strage_map< line_type >

#include <setassoc_table.h>

shttl::setassoc_table_strage_map< line_type >のコラボレーション図

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

Public 型

typedef setassoc_table_set_map<
const line_type, const this_type
const_set_type
typedef std::map< size_type,
size_type
invalid_map_type
typedef line_type::key_type key_type
typedef std::map< key_type,
typename strage_type::iterator > 
line_map_type
typedef setassoc_table_set_map<
line_type, this_type
set_type
typedef size_t size_type
typedef std::vector< line_type > strage_type
typedef setassoc_table_strage_map<
line_type > 
this_type
typedef line_type::value_type value_type

Public メソッド

const line_type & at (size_type index) const
line_type & at (size_type index)
invalid_map_typeget_invalid_map (size_type index)
line_map_typeget_line_map (size_type index)
const_set_type get_set (size_type index) const
set_type get_set (size_type index)
strage_type::iterator get_set_strage_iterator (size_type index)
void resize (size_type set_num, size_type way_num)

Static Public 変数

static const size_type invalid_index = ~((size_type)0)
static const size_type invalid_way = ~((size_type)0)

Protected 変数

strage_type m_body
std::vector< invalid_map_type,
invalid_map_allocator
m_invalid_map
std::vector< line_map_type,
line_map_allocator
m_line_map
size_type m_set_num
size_type m_way_num

構成

struct  invalid_map_allocator
struct  line_map_allocator

説明

template<typename line_type>
class shttl::setassoc_table_strage_map< line_type >

setassoc_table.h619 行で定義されています。


型定義

template<typename line_type>
typedef setassoc_table_set_map< const line_type, const this_type > shttl::setassoc_table_strage_map< line_type >::const_set_type

setassoc_table.h642 行で定義されています。

template<typename line_type>
typedef std::map< size_type, size_type > shttl::setassoc_table_strage_map< line_type >::invalid_map_type

setassoc_table.h656 行で定義されています。

template<typename line_type>
typedef line_type::key_type shttl::setassoc_table_strage_map< line_type >::key_type

setassoc_table.h627 行で定義されています。

template<typename line_type>
typedef std::map< key_type, typename strage_type::iterator > shttl::setassoc_table_strage_map< line_type >::line_map_type

setassoc_table.h649 行で定義されています。

template<typename line_type>
typedef setassoc_table_set_map< line_type, this_type > shttl::setassoc_table_strage_map< line_type >::set_type

setassoc_table.h635 行で定義されています。

template<typename line_type>
typedef size_t shttl::setassoc_table_strage_map< line_type >::size_type

setassoc_table.h624 行で定義されています。

template<typename line_type>
typedef std::vector<line_type> shttl::setassoc_table_strage_map< line_type >::strage_type

setassoc_table.h625 行で定義されています。

template<typename line_type>
typedef setassoc_table_strage_map< line_type > shttl::setassoc_table_strage_map< line_type >::this_type

setassoc_table.h623 行で定義されています。

template<typename line_type>
typedef line_type::value_type shttl::setassoc_table_strage_map< line_type >::value_type

setassoc_table.h628 行で定義されています。


関数

template<typename line_type>
const line_type& shttl::setassoc_table_strage_map< line_type >::at ( size_type  index  )  const [inline]

setassoc_table.h666 行で定義されています。

00666         {
00667             return m_body.at( index );
00668         }
00669 

template<typename line_type>
line_type& shttl::setassoc_table_strage_map< line_type >::at ( size_type  index  )  [inline]

setassoc_table.h661 行で定義されています。

00661         {
00662             return m_body.at( index );
00663         }
00664 

template<typename line_type>
invalid_map_type& shttl::setassoc_table_strage_map< line_type >::get_invalid_map ( size_type  index  )  [inline]

setassoc_table.h697 行で定義されています。

template<typename line_type>
line_map_type& shttl::setassoc_table_strage_map< line_type >::get_line_map ( size_type  index  )  [inline]

setassoc_table.h693 行で定義されています。

00696                                                             {

template<typename line_type>
const_set_type shttl::setassoc_table_strage_map< line_type >::get_set ( size_type  index  )  const [inline]

setassoc_table.h682 行で定義されています。

00682         {
00683             size_type offset = index*m_way_num;
00684             return const_set_type( 
00685                 this,
00686                 m_way_num,
00687                 index,
00688                 offset
00689             );
00690         }
00691 

template<typename line_type>
set_type shttl::setassoc_table_strage_map< line_type >::get_set ( size_type  index  )  [inline]

setassoc_table.h671 行で定義されています。

00671         {
00672             size_type offset = index*m_way_num;
00673             return set_type( 
00674                 this,
00675                 m_way_num,
00676                 index,
00677                 offset
00678             );
00679         }
00680 

template<typename line_type>
strage_type::iterator shttl::setassoc_table_strage_map< line_type >::get_set_strage_iterator ( size_type  index  )  [inline]

setassoc_table.h701 行で定義されています。

00701         {
00702             return m_body.begin() + index * m_way_num; 
00703         }
00704 

template<typename line_type>
void shttl::setassoc_table_strage_map< line_type >::resize ( size_type  set_num,
size_type  way_num 
) [inline]

setassoc_table.h706 行で定義されています。

00706         {
00707             m_set_num = set_num;
00708             m_way_num = way_num;
00709             
00710             m_body.clear();
00711             m_body.resize( set_num*way_num, line_type() );
00712 
00713             m_line_map.clear();
00714             m_line_map.resize( set_num );
00715 
00716             m_invalid_map.clear();
00717             m_invalid_map.resize( set_num );
00718 
00719             for( size_type index = 0; index < set_num; index++ ){
00720                 
00721                 set_type  set    = get_set( index );
00722                 line_map_type&    set_line_map    = m_line_map[ index ];
00723                 invalid_map_type& set_invalid_map = m_invalid_map[ index ];
00724                 typename strage_type::iterator set_iterator = get_set_strage_iterator( index );
00725 
00726                 // Update map and invalid line information.
00727                 for( size_type way = 0; way < way_num; way++ ){
00728                     line_type& line = set.at( way );
00729                     if( line.valid ){
00730                         set_line_map[ line.key ] = set_iterator + way;
00731                     }
00732                     else{
00733                         set_invalid_map[ way ] = way;
00734                     }
00735                 }
00736 
00737             }
00738         }
00739 


変数

template<typename line_type>
const size_type shttl::setassoc_table_strage_map< line_type >::invalid_index = ~((size_type)0) [static]

setassoc_table.h658 行で定義されています。

template<typename line_type>
const size_type shttl::setassoc_table_strage_map< line_type >::invalid_way = ~((size_type)0) [static]

setassoc_table.h659 行で定義されています。

template<typename line_type>
strage_type shttl::setassoc_table_strage_map< line_type >::m_body [protected]

setassoc_table.h746 行で定義されています。

template<typename line_type>
std::vector< invalid_map_type, invalid_map_allocator > shttl::setassoc_table_strage_map< line_type >::m_invalid_map [protected]

setassoc_table.h758 行で定義されています。

template<typename line_type>
std::vector< line_map_type, line_map_allocator > shttl::setassoc_table_strage_map< line_type >::m_line_map [protected]

setassoc_table.h757 行で定義されています。

template<typename line_type>
size_type shttl::setassoc_table_strage_map< line_type >::m_set_num [protected]

setassoc_table.h743 行で定義されています。

template<typename line_type>
size_type shttl::setassoc_table_strage_map< line_type >::m_way_num [protected]

setassoc_table.h744 行で定義されています。


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