クラス テンプレート sc_core::sc_pdhash< K, C >

#include <sc_hash.h>

sc_core::sc_pdhash< K, C >に対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public 型

typedef sc_pdhash_iter< K, C > iterator

Public メソッド

 sc_pdhash (C def=(C) 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=(hash_fn_t) 0, cmpr_fn_t cmpr_fn=(cmpr_fn_t) 0, void *(*kdup_fn)(const void *)=0, void(*kfree_fn)(void *)=0)
 ~sc_pdhash ()
void erase ()
void copy (const sc_pdhash< K, C > &b)
int insert (K k, C c)
int insert (K k)
int insert_if_not_exists (K k, C c)
int insert_if_not_exists (K k)
int remove (K k)
int remove (K k, K *pk, C *pc)
int remove_by_contents (C c)
int remove_by_contents (bool(*predicate)(const void *, void *), void *arg)
int lookup (K k, C *pc) const
bool contains (K k) const
operator[] (K k) const

Private 変数

void *(* kdup )(const void *)
void(* kfree )(void *)

フレンド

class sc_pdhash_iter< K, C >


説明

template<class K, class C>
class sc_core::sc_pdhash< K, C >

sc_hash.h271 行で定義されています。


型定義

template<class K, class C>
typedef sc_pdhash_iter<K,C> sc_core::sc_pdhash< K, C >::iterator

sc_core::sc_phash_baseを再定義しています。

sc_hash.h279 行で定義されています。


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

template<class K, class C>
sc_core::sc_pdhash< K, C >::sc_pdhash ( def = (C) 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 = (hash_fn_t) 0,
cmpr_fn_t  cmpr_fn = (cmpr_fn_t) 0,
void *(*)(const void *)  kdup_fn = 0,
void(*)(void *)  kfree_fn = 0 
) [inline]

sc_hash.h280 行で定義されています。

00289         : sc_phash_base((void*) def, size, density, grow, reorder, hash_fn, cmpr_fn)
00290     {
00291         kdup = kdup_fn;
00292         kfree = kfree_fn;
00293     }

template<class K, class C>
sc_core::sc_pdhash< K, C >::~sc_pdhash (  )  [inline]

sc_hash.h294 行で定義されています。

00295     {
00296         erase();
00297     }


関数

template<class K, class C>
void sc_core::sc_pdhash< K, C >::erase (  )  [inline]

sc_core::sc_phash_baseを再定義しています。

sc_hash.h298 行で定義されています。

00299     {
00300         sc_phash_base::erase(kfree);
00301     }

template<class K, class C>
void sc_core::sc_pdhash< K, C >::copy ( const sc_pdhash< K, C > &  b  )  [inline]

sc_hash.h302 行で定義されています。

00302 { sc_phash_base::copy(b, kdup, kfree); }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::insert ( k,
c 
) [inline]

sc_hash.h303 行で定義されています。

00303 { return sc_phash_base::insert((void*) k, (void*) c, kdup); }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::insert ( k  )  [inline]

sc_hash.h304 行で定義されています。

00304 { return sc_phash_base::insert((void*) k, default_value, kdup); }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::insert_if_not_exists ( k,
c 
) [inline]

sc_hash.h305 行で定義されています。

00306     {
00307         return sc_phash_base::insert_if_not_exists((void*) k, (void*) c, kdup);
00308     }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::insert_if_not_exists ( k  )  [inline]

sc_hash.h309 行で定義されています。

00310     {
00311         return sc_phash_base::insert_if_not_exists((void*) k, default_value, kdup);
00312     }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::remove ( k  )  [inline]

sc_hash.h313 行で定義されています。

00313 { return sc_phash_base::remove((const void*) k, kfree); }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::remove ( k,
K *  pk,
C *  pc 
) [inline]

sc_hash.h314 行で定義されています。

00315     {
00316         return sc_phash_base::remove((const void*) k, (void**) pk, (void**) pc);
00317     }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::remove_by_contents ( c  )  [inline]

sc_hash.h318 行で定義されています。

00319     {
00320         return sc_phash_base::remove_by_contents((const void*) c, kfree);
00321     }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::remove_by_contents ( bool(*)(const void *, void *)  predicate,
void *  arg 
) [inline]

sc_core::sc_phash_baseを再定義しています。

sc_hash.h322 行で定義されています。

00323     {
00324         return sc_phash_base::remove_by_contents(predicate, arg, kfree);
00325     }

template<class K, class C>
int sc_core::sc_pdhash< K, C >::lookup ( k,
C *  pc 
) const [inline]

sc_hash.h326 行で定義されています。

00327     {
00328         return sc_phash_base::lookup((const void*) k, (void**) pc);
00329     }

template<class K, class C>
bool sc_core::sc_pdhash< K, C >::contains ( k  )  const [inline]

sc_hash.h330 行で定義されています。

00331     {
00332         return sc_phash_base::contains((const void*) k);
00333     }

template<class K, class C>
C sc_core::sc_pdhash< K, C >::operator[] ( k  )  const [inline]

sc_hash.h334 行で定義されています。

00335     {
00336         return (C) sc_phash_base::operator[]((const void*) k);
00337     }


フレンドと関連する関数

template<class K, class C>
friend class sc_pdhash_iter< K, C > [friend]

sc_hash.h272 行で定義されています。


変数

template<class K, class C>
void*(* sc_core::sc_pdhash< K, C >::kdup)(const void *) [private]

template<class K, class C>
void(* sc_core::sc_pdhash< K, C >::kfree)(void *) [private]


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

SystemCに対してFri Jun 6 20:12:21 2008に生成されました。  doxygen 1.5.6