クラス Onikiri::AdrHasher

#include <AddrHasher.h>

Onikiri::AdrHasherに対する継承グラフ

Inheritance graph
[凡例]
Onikiri::AdrHasherのコラボレーション図

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

Public 型

typedef shttl::hasher< Addrbase_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.h40 行で定義されています。


型定義

typedef shttl::hasher<Addr> Onikiri::AdrHasher::base_type

AddrHasher.h45 行で定義されています。

typedef base_type::size_type Onikiri::AdrHasher::size_type

shttl::hasher< T >を再定義しています。

AddrHasher.h48 行で定義されています。

typedef AdrHasher Onikiri::AdrHasher::this_type

AddrHasher.h46 行で定義されています。

typedef Addr Onikiri::AdrHasher::value_type

AddrHasher.h49 行で定義されています。


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

Onikiri::AdrHasher::AdrHasher ( const size_type  idx_bit_arg,
const size_type  off_bit_arg 
) [inline, explicit]

AddrHasher.h68 行で定義されています。

参照先 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]

AddrHasher.h85 行で定義されています。

00086         {
00087         }


関数

size_type Onikiri::AdrHasher::index ( const value_type t  )  const [inline]

AddrHasher.h90 行で定義されています。

参照先 Onikiri::Addr::address.

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]

AddrHasher.h109 行で定義されています。

00110         {
00111             return lhs == rhs;
00112         }

value_type Onikiri::AdrHasher::rebuild ( const value_type tag,
size_type  index 
) const [inline]

AddrHasher.h102 行で定義されています。

参照先 Onikiri::Addr::addresstag().

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.h62 行で定義されています。

00063         {
00064             return (size_type)(m_idx_mask + 1); 
00065         }

value_type Onikiri::AdrHasher::tag ( const value_type t  )  const [inline]

AddrHasher.h95 行で定義されています。

参照先 Onikiri::Addr::address.

参照元 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]

AddrHasher.h51 行で定義されています。

参照元 AdrHasher().


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