#include <Hash_Map_Manager_T.h>
Inheritance diagram for ACE_Hash_Map_Const_Iterator_Base_Ex:


Public Methods | |
| ACE_Hash_Map_Const_Iterator_Base_Ex (const ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &mm, int head) | |
| Contructor. If head != 0, the iterator constructed is positioned at the head of the map, it is positioned at the end otherwise. More... | |
| int | next (ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&next_entry) const |
| Pass back the next <entry> that hasn't been seen in the Set. Returns 0 when all items have been seen, else 1. More... | |
| int | done (void) const |
| Returns 1 when all items have been seen, else 0. More... | |
| ACE_Hash_Map_Entry< EXT_ID, INT_ID > & | operator * (void) const |
| Returns a reference to the interal element <this> is pointing to. More... | |
| const ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | map (void) |
| Returns reference the Hash_Map_Manager_Ex that is being iterated over. More... | |
| int | operator== (const ACE_Hash_Map_Const_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &) const |
| Check if two iterators point to the same position. More... | |
| int | operator!= (const ACE_Hash_Map_Const_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &) const |
Public Attributes | |
| ACE_ALLOC_HOOK_DECLARE | |
| Declare the dynamic allocation hooks. More... | |
Protected Methods | |
| int | forward_i (void) |
| Move forward by one element in the set. Returns 0 when there's no more item in the set after the current items, else 1. More... | |
| int | reverse_i (void) |
| Move backward by one element in the set. Returns 0 when there's no more item in the set before the current item, else 1. More... | |
| void | dump_i (void) const |
| Dump the state of an object. More... | |
Protected Attributes | |
| const ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > * | map_man_ |
| Map we are iterating over. More... | |
| ssize_t | index_ |
| Keeps track of how far we've advanced in the table. More... | |
| ACE_Hash_Map_Entry< EXT_ID, INT_ID > * | next_ |
| Keeps track of how far we've advanced in a linked list in each table slot. More... | |
This class factors out common code from its templatized subclasses.
Definition at line 540 of file Hash_Map_Manager_T.h.
|
||||||||||||||||
|
Contructor. If head != 0, the iterator constructed is positioned at the head of the map, it is positioned at the end otherwise.
Definition at line 458 of file Hash_Map_Manager_T.i. References ACE_TRACE, next_, ssize_t, ACE_Hash_Map_Manager_Ex::table_, and ACE_Hash_Map_Manager_Ex::total_size_.
00460 : map_man_ (&mm), 00461 index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), 00462 next_ (0) 00463 { 00464 ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Map_Const_Iterator_Base_Ex"); 00465 00466 if (mm.table_ != 0) 00467 this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; 00468 } |
|
||||||||||
|
Returns 1 when all items have been seen, else 0.
Definition at line 488 of file Hash_Map_Manager_T.i. References ACE_TRACE, index_, and map_man_.
|
|
||||||||||
|
Dump the state of an object.
Definition at line 451 of file Hash_Map_Manager_T.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_LIB_TEXT, ACE_TRACE, and LM_DEBUG. Referenced by ACE_Hash_Map_Const_Iterator_Ex::dump.
00452 {
00453 ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i");
00454
00455 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
00456 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("index_ = %d "), this->index_));
00457 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next_ = %x"), this->next_));
00458 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
00459 }
|
|
||||||||||
|
Move forward by one element in the set. Returns 0 when there's no more item in the set after the current items, else 1.
Definition at line 462 of file Hash_Map_Manager_T.cpp. References ACE_TRACE, index_, map_man_, and next_. Referenced by ACE_Hash_Map_Const_Iterator_Ex::ACE_Hash_Map_Const_Iterator_Ex, ACE_Hash_Map_Const_Iterator_Ex::advance, and ACE_Hash_Map_Const_Iterator_Ex::operator++.
00463 {
00464 ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i");
00465
00466 if (this->map_man_->table_ == 0)
00467 return -1;
00468 // Handle initial case specially.
00469 else if (this->index_ == -1)
00470 {
00471 this->index_++;
00472 return this->forward_i ();
00473 }
00474 else if (this->index_ >= (ssize_t) this->map_man_->total_size_)
00475 return 0;
00476
00477 this->next_ = this->next_->next_;
00478 if (this->next_ == &this->map_man_->table_[this->index_])
00479 {
00480 while (++this->index_ < (ssize_t) this->map_man_->total_size_)
00481 {
00482 this->next_ = this->map_man_->table_[this->index_].next_;
00483 if (this->next_ != &this->map_man_->table_[this->index_])
00484 break;
00485 }
00486 }
00487
00488 return this->index_ < (ssize_t) this->map_man_->total_size_;
00489 }
|
|
||||||||||
|
Returns reference the Hash_Map_Manager_Ex that is being iterated over.
Definition at line 516 of file Hash_Map_Manager_T.i. References ACE_TRACE, and map_man_.
|
|
||||||||||
|
Pass back the next <entry> that hasn't been seen in the Set. Returns 0 when all items have been seen, else 1.
Definition at line 471 of file Hash_Map_Manager_T.i. References ACE_TRACE, index_, map_man_, and next_. Referenced by operator *.
00472 {
00473 ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next");
00474
00475 if (this->map_man_->table_ != 0
00476 && this->index_ < (ssize_t) this->map_man_->total_size_
00477 && this->index_ >= 0
00478 && this->next_ != &this->map_man_->table_[this->index_])
00479 {
00480 entry = this->next_;
00481 return 1;
00482 }
00483 else
00484 return 0;
00485 }
|
|
||||||||||
|
Returns a reference to the interal element <this> is pointing to.
Definition at line 499 of file Hash_Map_Manager_T.i. References ACE_ASSERT, ACE_TRACE, and next.
00500 {
00501 ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*");
00502 ACE_Hash_Map_Entry<EXT_ID, INT_ID> *retv = 0;
00503
00504 int result = this->next (retv);
00505
00506 ACE_UNUSED_ARG (result);
00507 ACE_ASSERT (result != 0);
00508
00509 return *retv;
00510 }
|
|
||||||||||
|
Definition at line 532 of file Hash_Map_Manager_T.i. References ACE_TRACE, index_, map_man_, and next_.
|
|
||||||||||
|
Check if two iterators point to the same position.
Definition at line 523 of file Hash_Map_Manager_T.i. References ACE_TRACE, index_, map_man_, and next_.
|
|
||||||||||
|
Move backward by one element in the set. Returns 0 when there's no more item in the set before the current item, else 1.
Definition at line 492 of file Hash_Map_Manager_T.cpp. References ACE_TRACE, index_, map_man_, and next_. Referenced by ACE_Hash_Map_Const_Iterator_Ex::operator--.
00493 {
00494 ACE_TRACE ("ACE_Hash_Map_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i");
00495
00496 if (this->map_man_->table_ == 0)
00497 return -1;
00498 else if (this->index_ == (ssize_t) this->map_man_->total_size_)
00499 {
00500 this->index_--;
00501 return this->reverse_i ();
00502 }
00503 else if (this->index_ < 0)
00504 return 0;
00505
00506 this->next_ = this->next_->prev_;
00507 if (this->next_ == &this->map_man_->table_[this->index_])
00508 {
00509 while (--this->index_ >= 0)
00510 {
00511 this->next_ = this->map_man_->table_[this->index_].prev_;
00512 if (this->next_ != &this->map_man_->table_[this->index_])
00513 break;
00514 }
00515 }
00516
00517 return this->index_ >= 0;
00518 }
|
|
|||||
|
Declare the dynamic allocation hooks.
Reimplemented in ACE_Hash_Map_Const_Iterator_Ex. Definition at line 570 of file Hash_Map_Manager_T.h. |
|
|||||
|
Keeps track of how far we've advanced in the table.
Definition at line 588 of file Hash_Map_Manager_T.h. Referenced by done, forward_i, next, operator!=, operator==, and reverse_i. |
|
|||||
|
Map we are iterating over.
Definition at line 585 of file Hash_Map_Manager_T.h. Referenced by done, forward_i, map, next, operator!=, operator==, and reverse_i. |
|
|||||
|
Keeps track of how far we've advanced in a linked list in each table slot.
Definition at line 592 of file Hash_Map_Manager_T.h. Referenced by ACE_Hash_Map_Const_Iterator_Base_Ex, forward_i, next, operator!=, operator==, and reverse_i. |
1.2.14 written by Dimitri van Heesch,
© 1997-2002