#include <sysc/utils/sc_hash.h>
Public Types | |
typedef unsigned(* | hash_fn_t )(const void *) |
typedef int(* | cmpr_fn_t )(const void *, const void *) |
Public Member Functions | |
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 Member Functions | |
void | rehash () |
unsigned | do_hash (const void *key) const |
sc_phash_elem * | add_direct (void *key, void *contents, unsigned hash_val) |
sc_phash_elem * | find_entry_c (unsigned hv, const void *k, sc_phash_elem ***plast) |
sc_phash_elem * | find_entry_q (unsigned hv, const void *k, sc_phash_elem ***plast) |
sc_phash_elem * | find_entry (unsigned hv, const void *k, sc_phash_elem ***plast=0) const |
Protected Attributes | |
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 |
Friends | |
class | sc_phash_base_iter |
Definition at line 48 of file sc_hash.h.
typedef int(* sc_core::sc_phash_base::cmpr_fn_t)(const void *, const void *) |
typedef unsigned(* sc_core::sc_phash_base::hash_fn_t)(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 | ( | ) |
sc_phash_elem* sc_core::sc_phash_base::add_direct | ( | void * | key, | |
void * | contents, | |||
unsigned | hash_val | |||
) | [protected] |
bool sc_core::sc_phash_base::contains | ( | const void * | k | ) | const [inline] |
void sc_core::sc_phash_base::copy | ( | const sc_phash_base & | b, | |
void *(*)(const void *) | kdup, | |||
void(*)(void *) | kfree | |||
) |
Reimplemented in sc_core::sc_phash< K, C >.
void sc_core::sc_phash_base::copy | ( | const sc_phash_base & | b | ) | [inline] |
Reimplemented in sc_core::sc_phash< K, C >, sc_core::sc_pdhash< K, C >, sc_core::sc_strhash< C >, and sc_core::sc_strhash< int * >.
void sc_core::sc_phash_base::copy | ( | const sc_phash_base * | ) |
Reimplemented in sc_core::sc_phash< K, C >, sc_core::sc_strhash< C >, and sc_core::sc_strhash< int * >.
unsigned sc_core::sc_phash_base::do_hash | ( | const void * | key | ) | const [inline, protected] |
void sc_core::sc_phash_base::erase | ( | void(*)(void *) | kfree | ) |
void sc_core::sc_phash_base::erase | ( | ) |
Reimplemented in sc_core::sc_pdhash< K, C >, sc_core::sc_strhash< C >, and sc_core::sc_strhash< int * >.
sc_phash_elem* sc_core::sc_phash_base::find_entry | ( | unsigned | hv, | |
const void * | k, | |||
sc_phash_elem *** | plast = 0 | |||
) | const [inline, 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] |
int sc_core::sc_phash_base::insert | ( | void * | k, | |
void * | c, | |||
void *(*)(const void *) | kdup | |||
) |
int sc_core::sc_phash_base::insert | ( | void * | k | ) | [inline] |
Reimplemented in sc_core::sc_phash< void *, const T * >.
int sc_core::sc_phash_base::insert | ( | void * | k, | |
void * | c | |||
) |
int sc_core::sc_phash_base::insert_if_not_exists | ( | void * | k, | |
void * | c, | |||
void *(*)(const void *) | kdup | |||
) |
int sc_core::sc_phash_base::insert_if_not_exists | ( | void * | k | ) | [inline] |
Reimplemented in sc_core::sc_phash< void *, const T * >.
int sc_core::sc_phash_base::insert_if_not_exists | ( | void * | k, | |
void * | c | |||
) |
int sc_core::sc_phash_base::lookup | ( | const void * | k, | |
void ** | pc | |||
) | const |
void* sc_core::sc_phash_base::operator[] | ( | const void * | key | ) | const |
void sc_core::sc_phash_base::rehash | ( | ) | [protected] |
int sc_core::sc_phash_base::remove | ( | const void * | k, | |
void(*)(void *) | kfree | |||
) |
int sc_core::sc_phash_base::remove | ( | const void * | k, | |
void ** | pk, | |||
void ** | pc | |||
) |
int sc_core::sc_phash_base::remove | ( | const void * | k | ) |
int sc_core::sc_phash_base::remove_by_contents | ( | bool(*)(const void *, void *) | predicate, | |
void * | arg, | |||
void(*)(void *) | kfree | |||
) |
Reimplemented in sc_core::sc_phash< K, C >, and sc_core::sc_phash< void *, const T * >.
int sc_core::sc_phash_base::remove_by_contents | ( | const void * | c, | |
void(*)(void *) | kfree | |||
) |
Reimplemented in sc_core::sc_phash< K, C >, and sc_core::sc_phash< void *, const T * >.
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 sc_core::sc_phash_base::set_cmpr_fn | ( | cmpr_fn_t | ) |
void sc_core::sc_phash_base::set_hash_fn | ( | hash_fn_t | ) |
friend class sc_phash_base_iter [friend] |
sc_phash_elem** sc_core::sc_phash_base::bins [protected] |
cmpr_fn_t sc_core::sc_phash_base::cmpr [protected] |
void* sc_core::sc_phash_base::default_value [protected] |
double sc_core::sc_phash_base::grow_factor [protected] |
hash_fn_t sc_core::sc_phash_base::hash [protected] |
int sc_core::sc_phash_base::max_density [protected] |
int sc_core::sc_phash_base::num_bins [protected] |
int sc_core::sc_phash_base::num_entries [protected] |
int sc_core::sc_phash_base::reorder_flag [protected] |