クラス sc_core::sc_phash_base

#include <sc_hash.h>

sc_core::sc_phash_baseに対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public 型

typedef unsigned(* hash_fn_t )(const void *)
typedef int(* cmpr_fn_t )(const void *, const void *)

Public メソッド

 sc_phash_base (void *def=0, int size=PHASH_DEFAULT_INIT_TABLE_SIZE, int density=PHASH_DEFAULT_MAX_DENSITY, double grow=PHASH_DEFAULT_GROW_FACTOR, bool reorder=PHASH_DEFAULT_REORDER_FLAG, hash_fn_t hash_fn=default_ptr_hash_fn, cmpr_fn_t cmpr_fn=0)
 ~sc_phash_base ()
void set_cmpr_fn (cmpr_fn_t)
void set_hash_fn (hash_fn_t)
bool empty () const
unsigned count () const
void erase ()
void erase (void(*kfree)(void *))
void copy (const sc_phash_base *)
void copy (const sc_phash_base &b)
void copy (const sc_phash_base &b, void *(*kdup)(const void *), void(*kfree)(void *))
int insert (void *k, void *c)
int insert (void *k)
int insert (void *k, void *c, void *(*kdup)(const void *))
int insert_if_not_exists (void *k, void *c)
int insert_if_not_exists (void *k)
int insert_if_not_exists (void *k, void *c, void *(*kdup)(const void *))
int remove (const void *k)
int remove (const void *k, void **pk, void **pc)
int remove (const void *k, void(*kfree)(void *))
int remove_by_contents (const void *c)
int remove_by_contents (bool(*predicate)(const void *, void *), void *arg)
int remove_by_contents (const void *c, void(*kfree)(void *))
int remove_by_contents (bool(*predicate)(const void *, void *), void *arg, void(*kfree)(void *))
int lookup (const void *k, void **pc) const
bool contains (const void *k) const
void * operator[] (const void *key) const

Protected メソッド

void rehash ()
unsigned do_hash (const void *key) const
sc_phash_elemadd_direct (void *key, void *contents, unsigned hash_val)
sc_phash_elemfind_entry_c (unsigned hv, const void *k, sc_phash_elem ***plast)
sc_phash_elemfind_entry_q (unsigned hv, const void *k, sc_phash_elem ***plast)
sc_phash_elemfind_entry (unsigned hv, const void *k, sc_phash_elem ***plast=0) const

Protected 変数

void * default_value
int num_bins
int num_entries
int max_density
int reorder_flag
double grow_factor
sc_phash_elem ** bins
hash_fn_t hash
cmpr_fn_t cmpr

Private 型

typedef sc_phash_base_iter iterator

フレンド

class sc_phash_base_iter


型定義

typedef unsigned(* sc_core::sc_phash_base::hash_fn_t)(const void *)

typedef int(* sc_core::sc_phash_base::cmpr_fn_t)(const void *, const void *)


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

sc_core::sc_phash_base::sc_phash_base ( void *  def = 0,
int  size = PHASH_DEFAULT_INIT_TABLE_SIZE,
int  density = PHASH_DEFAULT_MAX_DENSITY,
double  grow = PHASH_DEFAULT_GROW_FACTOR,
bool  reorder = PHASH_DEFAULT_REORDER_FLAG,
hash_fn_t  hash_fn = default_ptr_hash_fn,
cmpr_fn_t  cmpr_fn = 0 
)

sc_core::sc_phash_base::~sc_phash_base (  ) 


関数

void sc_core::sc_phash_base::rehash (  )  [protected]

unsigned sc_core::sc_phash_base::do_hash ( const void *  key  )  const [inline, protected]

sc_phash_elem * sc_core::sc_phash_base::add_direct ( void *  key,
void *  contents,
unsigned  hash_val 
) [protected]

sc_phash_elem * sc_core::sc_phash_base::find_entry_c ( unsigned  hv,
const void *  k,
sc_phash_elem ***  plast 
) [protected]

sc_phash_elem * sc_core::sc_phash_base::find_entry_q ( unsigned  hv,
const void *  k,
sc_phash_elem ***  plast 
) [protected]

sc_phash_elem* sc_core::sc_phash_base::find_entry ( unsigned  hv,
const void *  k,
sc_phash_elem ***  plast = 0 
) const [inline, protected]

void sc_core::sc_phash_base::set_cmpr_fn ( cmpr_fn_t  c  ) 

void sc_core::sc_phash_base::set_hash_fn ( hash_fn_t  h  ) 

bool sc_core::sc_phash_base::empty (  )  const [inline]

unsigned sc_core::sc_phash_base::count (  )  const [inline]

void sc_core::sc_phash_base::erase (  ) 

void sc_core::sc_phash_base::erase ( void(*)(void *)  kfree  ) 

void sc_core::sc_phash_base::copy ( const sc_phash_base b  ) 

void sc_core::sc_phash_base::copy ( const sc_phash_base b  )  [inline]

void sc_core::sc_phash_base::copy ( const sc_phash_base b,
void *(*)(const void *)  kdup,
void(*)(void *)  kfree 
)

int sc_core::sc_phash_base::insert ( void *  k,
void *  c 
)

int sc_core::sc_phash_base::insert ( void *  k  )  [inline]

int sc_core::sc_phash_base::insert ( void *  k,
void *  c,
void *(*)(const void *)  kdup 
)

int sc_core::sc_phash_base::insert_if_not_exists ( void *  k,
void *  c 
)

int sc_core::sc_phash_base::insert_if_not_exists ( void *  k  )  [inline]

int sc_core::sc_phash_base::insert_if_not_exists ( void *  k,
void *  c,
void *(*)(const void *)  kdup 
)

int sc_core::sc_phash_base::remove ( const void *  k  ) 

int sc_core::sc_phash_base::remove ( const void *  k,
void **  pk,
void **  pc 
)

int sc_core::sc_phash_base::remove ( const void *  k,
void(*)(void *)  kfree 
)

int sc_core::sc_phash_base::remove_by_contents ( const void *  c  ) 

int sc_core::sc_phash_base::remove_by_contents ( bool(*)(const void *, void *)  predicate,
void *  arg 
)

int sc_core::sc_phash_base::remove_by_contents ( const void *  c,
void(*)(void *)  kfree 
)

int sc_core::sc_phash_base::remove_by_contents ( bool(*)(const void *, void *)  predicate,
void *  arg,
void(*)(void *)  kfree 
)

int sc_core::sc_phash_base::lookup ( const void *  k,
void **  pc 
) const

bool sc_core::sc_phash_base::contains ( const void *  k  )  const [inline]

void * sc_core::sc_phash_base::operator[] ( const void *  key  )  const


フレンドと関連する関数

friend class sc_phash_base_iter [friend]


変数


このクラスの説明は次のファイルから生成されました:

SystemCに対してFri Jun 6 07:41:06 2008に生成されました。  doxygen 1.5.6