#include <sc_hash.h>
Public メソッド | |
void | reset (sc_phash_base *t) |
void | reset (sc_phash_base &t) |
sc_phash_base_iter (sc_phash_base *t) | |
sc_phash_base_iter (sc_phash_base &t) | |
~sc_phash_base_iter () | |
bool | empty () const |
void | step () |
void | operator++ (int) |
void | remove () |
void | remove (void(*kfree)(void *)) |
void * | key () const |
void * | contents () const |
void * | set_contents (void *c) |
Protected 変数 | |
sc_phash_base * | table |
sc_phash_elem * | entry |
sc_phash_elem * | next |
sc_phash_elem ** | last |
int | index |
sc_core::sc_phash_base_iter::sc_phash_base_iter | ( | sc_phash_base * | t | ) | [inline] |
sc_core::sc_phash_base_iter::sc_phash_base_iter | ( | sc_phash_base & | t | ) | [inline] |
void sc_core::sc_phash_base_iter::reset | ( | sc_phash_base * | t | ) |
sc_hash.cpp の 520 行で定義されています。
00521 { 00522 table = t; 00523 index = 0; 00524 entry = 0; 00525 next = 0; 00526 00527 for (int i = index; i < table->num_bins; ++i) { 00528 if (table->bins[i] != 0) { 00529 index = i + 1; 00530 last = &(table->bins[i]); 00531 entry = *last; 00532 next = entry->next; 00533 break; 00534 } 00535 } 00536 }
void sc_core::sc_phash_base_iter::reset | ( | sc_phash_base & | t | ) | [inline] |
bool sc_core::sc_phash_base_iter::empty | ( | ) | const |
void sc_core::sc_phash_base_iter::step | ( | ) |
sc_hash.cpp の 545 行で定義されています。
00546 { 00547 if (entry) { 00548 last = &(entry->next); 00549 } 00550 entry = next; 00551 if (! entry) { 00552 for (int i = index; i < table->num_bins; ++i) { 00553 if (table->bins[i] != 0) { 00554 index = i + 1; 00555 last = &(table->bins[i]); 00556 entry = *last; 00557 next = entry->next; 00558 break; 00559 } 00560 } 00561 } 00562 else { 00563 next = entry->next; 00564 } 00565 }
void sc_core::sc_phash_base_iter::operator++ | ( | int | ) | [inline] |
void sc_core::sc_phash_base_iter::remove | ( | ) |
sc_core::sc_pdhash_iter< K, C >, と sc_core::sc_strhash_iter< C >で再定義されています。
sc_hash.cpp の 568 行で定義されています。
00569 { 00570 delete entry; 00571 *last = next; 00572 entry = 0; 00573 --table->num_entries; 00574 step(); 00575 }
void sc_core::sc_phash_base_iter::remove | ( | void(*)(void *) | kfree | ) |
void * sc_core::sc_phash_base_iter::key | ( | ) | const |
sc_core::sc_phash_iter< K, C >, と sc_core::sc_pdhash_iter< K, C >で再定義されています。
sc_hash.cpp の 589 行で定義されています。
00590 { 00591 return entry->key; 00592 }
void * sc_core::sc_phash_base_iter::contents | ( | ) | const |
sc_core::sc_phash_iter< K, C >, と sc_core::sc_pdhash_iter< K, C >で再定義されています。
sc_hash.cpp の 595 行で定義されています。
00596 { 00597 return entry->contents; 00598 }
void * sc_core::sc_phash_base_iter::set_contents | ( | void * | c | ) |
sc_phash_base* sc_core::sc_phash_base_iter::table [protected] |
sc_phash_elem* sc_core::sc_phash_base_iter::entry [protected] |
sc_phash_elem* sc_core::sc_phash_base_iter::next [protected] |
sc_phash_elem** sc_core::sc_phash_base_iter::last [protected] |
int sc_core::sc_phash_base_iter::index [protected] |