クラス 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_base * table
sc_phash_elem * entry
sc_phash_elem * next
sc_phash_elem ** last
int index


説明

sc_hash.h の 143 行で定義されています。


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

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

sc_hash.h の 155 行で定義されています。

00155 { reset(t); }

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

sc_hash.h の 156 行で定義されています。

00156 { reset(t); }

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

sc_hash.h の 157 行で定義されています。

00157 { }


関数

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]

sc_hash.h の 153 行で定義されています。

00153 { reset(&t); }

bool sc_core::sc_phash_base_iter::empty (  )  const

sc_hash.cpp の 539 行で定義されています。

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

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]

sc_hash.h の 161 行で定義されています。

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.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  ) 

sc_hash.cpp の 578 行で定義されています。

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

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


変数

sc_hash.h の 145 行で定義されています。

sc_hash.h の 146 行で定義されています。

sc_hash.h の 147 行で定義されています。

sc_hash.h の 148 行で定義されています。

sc_hash.h の 149 行で定義されています。


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

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