クラス sc_core::sc_phash_base_iter

#include <sc_hash.h>

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

Inheritance graph
[凡例]

すべてのメンバ一覧

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_basetable
sc_phash_elementry
sc_phash_elemnext
sc_phash_elem ** last
int index


説明

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


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

sc_core::sc_phash_base_iter::sc_phash_base_iter ( sc_phash_base t  )  [inline]

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

00155 { reset(t); }

sc_core::sc_phash_base_iter::sc_phash_base_iter ( sc_phash_base t  )  [inline]

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

00156 { reset(t); }

sc_core::sc_phash_base_iter::~sc_phash_base_iter (  )  [inline]

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

00157 { }


関数

void sc_core::sc_phash_base_iter::reset ( sc_phash_base t  ) 

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

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]

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

00153 { reset(&t); }

bool sc_core::sc_phash_base_iter::empty (  )  const

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

00540 {
00541     return (entry == 0);
00542 }

void sc_core::sc_phash_base_iter::step (  ) 

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

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]

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

00161 { step(); }

void sc_core::sc_phash_base_iter::remove (  ) 

sc_core::sc_pdhash_iter< K, C >, と sc_core::sc_strhash_iter< C >で再定義されています。

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

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  ) 

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

00579 {
00580     (*kfree)(entry->key);
00581     delete entry;
00582     *last = next;
00583     entry = 0;
00584     --table->num_entries;
00585     step();
00586 }

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

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

00596 {
00597     return entry->contents;
00598 }

void * sc_core::sc_phash_base_iter::set_contents ( void *  c  ) 

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

00602 {
00603     return entry->contents = c;
00604 }


変数

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

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

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

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

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


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

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