#include <AddrHasher.h>
Onikiri::AdrHasherに対する継承グラフ
Public 型 | |
typedef shttl::hasher< Addr > | base_type |
typedef base_type::size_type | size_type |
typedef AdrHasher | this_type |
typedef Addr | value_type |
Public メソッド | |
AdrHasher (const size_type idx_bit_arg, const size_type off_bit_arg) | |
size_type | index (const value_type &t) const |
bool | match (const value_type &lhs, const value_type &rhs) const |
value_type | rebuild (const value_type &tag, size_type index) const |
size_type | size () const |
value_type | tag (const value_type &t) const |
~AdrHasher () | |
Static Public 変数 | |
static const std::numeric_limits< u64 > | value_info |
AddrHasher.h の 40 行で定義されています。
AddrHasher.h の 45 行で定義されています。
AddrHasher.h の 46 行で定義されています。
typedef Addr Onikiri::AdrHasher::value_type |
AddrHasher.h の 49 行で定義されています。
Onikiri::AdrHasher::AdrHasher | ( | const size_type | idx_bit_arg, | |
const size_type | off_bit_arg | |||
) | [inline, explicit] |
AddrHasher.h の 68 行で定義されています。
参照先 value_info.
00071 : 00072 m_idx_bit ( idx_bit_arg ), 00073 m_idx_mask( shttl::mask(0, idx_bit_arg) ), 00074 m_off_bit ( off_bit_arg ), 00075 m_off_mask( shttl::mask(0, off_bit_arg ) 00076 ){ 00077 if( ( (size_type)value_info.digits < m_idx_bit ) || 00078 ( (size_type)value_info.digits < m_off_bit ) || 00079 ( (size_type)value_info.digits < m_idx_bit + m_off_bit ) 00080 ){ 00081 throw std::invalid_argument("AdrHasher::AdrHasher"); 00082 } 00083 }
Onikiri::AdrHasher::~AdrHasher | ( | ) | [inline] |
size_type Onikiri::AdrHasher::index | ( | const value_type & | t | ) | const [inline] |
AddrHasher.h の 90 行で定義されています。
00091 { 00092 return (size_type)((t.address >> m_off_bit) & m_idx_mask); 00093 }
bool Onikiri::AdrHasher::match | ( | const value_type & | lhs, | |
const value_type & | rhs | |||
) | const [inline] |
value_type Onikiri::AdrHasher::rebuild | ( | const value_type & | tag, | |
size_type | index | |||
) | const [inline] |
AddrHasher.h の 102 行で定義されています。
参照先 Onikiri::Addr::address・tag().
00103 { 00104 value_type adr(tag); 00105 adr.address = ((tag.address << m_idx_bit) | index) << m_off_bit; 00106 return adr; 00107 }
関数の呼び出しグラフ:
size_type Onikiri::AdrHasher::size | ( | ) | const [inline, virtual] |
shttl::hasher< T >を実装しています。
AddrHasher.h の 62 行で定義されています。
00063 { 00064 return (size_type)(m_idx_mask + 1); 00065 }
value_type Onikiri::AdrHasher::tag | ( | const value_type & | t | ) | const [inline] |
AddrHasher.h の 95 行で定義されています。
参照元 rebuild().
00096 { 00097 value_type adr(t); 00098 adr.address >>= (m_off_bit+m_idx_bit); 00099 return adr; 00100 }
Here is the caller graph for this function:
const std::numeric_limits<u64> Onikiri::AdrHasher::value_info [static] |