#include <setassoc_table.h>
shttl::setassoc_table_set_vector< line_type, strage_type >のコラボレーション図
Public 型 | |
typedef strage_type::size_type | size_type |
typedef line_type::tag_type | tag_type |
typedef line_type::value_type | value_type |
Public メソッド | |
const line_type & | at (size_type way) const |
line_type & | at (size_type way) |
void | clear () |
size_type | find (const tag_type tag) const |
size_type | find_free_way () const |
void | invalidate (const size_type way) |
bool | read (size_type way, line_type *line) const |
setassoc_table_set_vector (strage_type *lines, size_type way_num, size_type offset) | |
void | write (const size_type way, const tag_type tag, const value_type &val=value_type()) |
Static Public 変数 | |
static const size_type | invalid_index = strage_type::invalid_index |
static const size_type | invalid_way = strage_type::invalid_way |
Protected メソッド | |
void | assert_valid_way (size_type way) const |
Protected 変数 | |
size_type | m_offset |
strage_type * | m_strage |
size_type | m_way_num |
setassoc_table.h の 254 行で定義されています。
typedef strage_type::size_type shttl::setassoc_table_set_vector< line_type, strage_type >::size_type |
setassoc_table.h の 259 行で定義されています。
typedef line_type::tag_type shttl::setassoc_table_set_vector< line_type, strage_type >::tag_type |
setassoc_table.h の 260 行で定義されています。
typedef line_type::value_type shttl::setassoc_table_set_vector< line_type, strage_type >::value_type |
setassoc_table.h の 261 行で定義されています。
shttl::setassoc_table_set_vector< line_type, strage_type >::setassoc_table_set_vector | ( | strage_type * | lines, | |
size_type | way_num, | |||
size_type | offset | |||
) | [inline] |
setassoc_table.h の 266 行で定義されています。
00270 : 00271 m_strage ( lines ), 00272 m_way_num( way_num ), 00273 m_offset ( offset ) 00274 { 00275 }
void shttl::setassoc_table_set_vector< line_type, strage_type >::assert_valid_way | ( | size_type | way | ) | const [inline, protected] |
setassoc_table.h の 363 行で定義されています。
参照先 SHTTL_ASSERT.
00364 { 00365 SHTTL_ASSERT( 0 <= way && way < m_way_num ); 00366 }
const line_type& shttl::setassoc_table_set_vector< line_type, strage_type >::at | ( | size_type | way | ) | const [inline] |
line_type& shttl::setassoc_table_set_vector< line_type, strage_type >::at | ( | size_type | way | ) | [inline] |
setassoc_table.h の 347 行で定義されています。
参照元 shttl::setassoc_table_set_vector< line_type, strage_type >::find().
Here is the caller graph for this function:
void shttl::setassoc_table_set_vector< line_type, strage_type >::clear | ( | ) | [inline] |
setassoc_table.h の 340 行で定義されています。
00341 { 00342 for( size_type w = 0; w < m_way_num; w++ ){ 00343 at( w ).valid = false; 00344 } 00345 }
size_type shttl::setassoc_table_set_vector< line_type, strage_type >::find | ( | const tag_type | tag | ) | const [inline] |
setassoc_table.h の 278 行で定義されています。
参照先 shttl::setassoc_table_set_vector< line_type, strage_type >::at()・shttl::setassoc_table_set_vector< line_type, strage_type >::m_way_num.
00279 { 00280 for( size_type w = 0; w < m_way_num; w++ ){ 00281 const line_type& line = at( w ); 00282 if( line.tag == tag && line.valid ){ 00283 return w; 00284 } 00285 } 00286 return invalid_way; 00287 }
関数の呼び出しグラフ:
size_type shttl::setassoc_table_set_vector< line_type, strage_type >::find_free_way | ( | ) | const [inline] |
setassoc_table.h の 290 行で定義されています。
00291 { 00292 for( size_type w = 0; w < m_way_num; w++ ){ 00293 if( !at( w ).valid ) 00294 return w; 00295 } 00296 return invalid_way; 00297 }
void shttl::setassoc_table_set_vector< line_type, strage_type >::invalidate | ( | const size_type | way | ) | [inline] |
setassoc_table.h の 300 行で定義されています。
00301 { 00302 if( way == invalid_way ) 00303 return; 00304 00305 assert_valid_way( way ); 00306 at( way ).valid = false; 00307 }
bool shttl::setassoc_table_set_vector< line_type, strage_type >::read | ( | size_type | way, | |
line_type * | line | |||
) | const [inline] |
setassoc_table.h の 310 行で定義されています。
00311 { 00312 if( way == invalid_way ) 00313 return false; 00314 00315 assert_valid_way( way ); 00316 if( line ){ 00317 *line = at( way ); 00318 } 00319 return at( way ).valid; 00320 }
void shttl::setassoc_table_set_vector< line_type, strage_type >::write | ( | const size_type | way, | |
const tag_type | tag, | |||
const value_type & | val = value_type() | |||
) | [inline] |
setassoc_table.h の 322 行で定義されています。
参照先 SHTTL_ASSERT.
00326 { 00327 if(way == invalid_way) 00328 return; 00329 00330 assert_valid_way(way); 00331 00332 // keydH 00333 SHTTL_ASSERT( find(tag) == invalid_way || find( tag ) == way ); 00334 00335 // 00336 at( way ) = line_type( tag, val, true ); 00337 }
const size_type shttl::setassoc_table_set_vector< line_type, strage_type >::invalid_index = strage_type::invalid_index [static] |
setassoc_table.h の 263 行で定義されています。
const size_type shttl::setassoc_table_set_vector< line_type, strage_type >::invalid_way = strage_type::invalid_way [static] |
setassoc_table.h の 264 行で定義されています。
size_type shttl::setassoc_table_set_vector< line_type, strage_type >::m_offset [protected] |
setassoc_table.h の 361 行で定義されています。
strage_type* shttl::setassoc_table_set_vector< line_type, strage_type >::m_strage [protected] |
setassoc_table.h の 359 行で定義されています。
size_type shttl::setassoc_table_set_vector< line_type, strage_type >::m_way_num [protected] |