#include <Hash_Map_Manager_T.h>
Inheritance diagram for ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >:
Public Member Functions | |
ACE_Hash_Map_Iterator_Base_Ex (ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &mm, bool head) | |
Contructor. | |
ACE_Hash_Map_Iterator_Base_Ex (ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &mm, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *entry, size_t index) | |
Contructor. | |
int | next (ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&next_entry) const |
int | done (void) const |
Returns 1 when all items have been seen, else 0. | |
ACE_Hash_Map_Entry< EXT_ID, INT_ID > & | operator * (void) const |
Returns a reference to the interal element this is pointing to. | |
ACE_Hash_Map_Entry< EXT_ID, INT_ID > * | operator-> (void) const |
Returns a pointer to the interal element this is pointing to. | |
ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | map (void) |
bool | operator== (const ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &) const |
Check if two iterators point to the same position. | |
bool | operator!= (const ACE_Hash_Map_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. | |
Protected Member Functions | |
int | forward_i (void) |
int | reverse_i (void) |
void | dump_i (void) const |
Dump the state of an object. | |
Protected Attributes | |
ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > * | map_man_ |
Map we are iterating over. | |
ssize_t | index_ |
Keeps track of how far we've advanced in the table. | |
ACE_Hash_Map_Entry< EXT_ID, INT_ID > * | next_ |
This class factors out common code from its templatized subclasses.
Definition at line 579 of file Hash_Map_Manager_T.h.
|
Contructor.
If head != Definition at line 491 of file Hash_Map_Manager_T.inl. References ssize_t.
00498 : map_man_ (&mm), 00499 index_ (head ? -1 : (ssize_t) mm.total_size_), 00500 next_ (0) 00501 { 00502 if (mm.table_ != 0) 00503 this->next_ = &mm.table_[head ? 0 : mm.total_size_ - 1]; 00504 } |
|
Contructor. This constructor positions the iterator to the given entry. Definition at line 516 of file Hash_Map_Manager_T.inl.
|
|
Returns 1 when all items have been seen, else 0.
Definition at line 549 of file Hash_Map_Manager_T.inl. References ACE_TRACE, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_.
|
|
Dump the state of an object.
Definition at line 385 of file Hash_Map_Manager_T.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_TEXT, ACE_TRACE, and LM_DEBUG. Referenced by ACE_Hash_Map_Reverse_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::dump(), and ACE_Hash_Map_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::dump().
00386 { 00387 ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i"); 00388 00389 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); 00390 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("index_ = %d "), this->index_)); 00391 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next_ = %x"), this->next_)); 00392 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); 00393 } |
|
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 396 of file Hash_Map_Manager_T.cpp. References ACE_TRACE, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_. Referenced by ACE_Hash_Map_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::ACE_Hash_Map_Iterator_Ex(), ACE_Hash_Map_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::advance(), ACE_Hash_Map_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator++(), and ACE_Hash_Map_Reverse_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator--().
00397 { 00398 ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i"); 00399 00400 if (this->map_man_->table_ == 0) 00401 return -1; 00402 // Handle initial case specially. 00403 else if (this->index_ == -1) 00404 { 00405 this->index_++; 00406 return this->forward_i (); 00407 } 00408 else if (this->index_ >= static_cast<ssize_t> (this->map_man_->total_size_)) 00409 return 0; 00410 00411 this->next_ = this->next_->next_; 00412 if (this->next_ == &this->map_man_->table_[this->index_]) 00413 { 00414 while (++this->index_ < static_cast<ssize_t> (this->map_man_->total_size_)) 00415 { 00416 this->next_ = this->map_man_->table_[this->index_].next_; 00417 if (this->next_ != &this->map_man_->table_[this->index_]) 00418 break; 00419 } 00420 } 00421 00422 return this->index_ < static_cast<ssize_t> (this->map_man_->total_size_); 00423 } |
|
Returns reference the Hash_Map_Manager_Ex that is being iterated over. Definition at line 592 of file Hash_Map_Manager_T.inl. References ACE_TRACE, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_.
|
|
Pass back the next that hasn't been seen in the Set. Returns 0 when all items have been seen, else 1. Definition at line 532 of file Hash_Map_Manager_T.inl. References ACE_TRACE, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_. Referenced by ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator *(), and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator->().
00533 { 00534 ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next"); 00535 00536 if (this->map_man_->table_ != 0 00537 && this->index_ < static_cast<ssize_t> (this->map_man_->total_size_) 00538 && this->index_ >= 0 00539 && this->next_ != &this->map_man_->table_[this->index_]) 00540 { 00541 entry = this->next_; 00542 return 1; 00543 } 00544 else 00545 return 0; 00546 } |
|
Returns a reference to the interal element
Definition at line 560 of file Hash_Map_Manager_T.inl. References ACE_ASSERT, ACE_TRACE, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next().
00561 { 00562 ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*"); 00563 ACE_Hash_Map_Entry<EXT_ID, INT_ID> *retv = 0; 00564 00565 int result = this->next (retv); 00566 00567 ACE_UNUSED_ARG (result); 00568 ACE_ASSERT (result != 0); 00569 00570 return *retv; 00571 } |
|
|
Returns a pointer to the interal element
Definition at line 575 of file Hash_Map_Manager_T.inl. References ACE_ASSERT, ACE_TRACE, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next().
00576 { 00577 ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator->"); 00578 ACE_Hash_Map_Entry<EXT_ID, INT_ID> *retv = 0; 00579 00580 int result = this->next (retv); 00581 00582 ACE_UNUSED_ARG (result); 00583 ACE_ASSERT (result != 0); 00584 00585 return retv; 00586 } |
|
Check if two iterators point to the same position.
Definition at line 599 of file Hash_Map_Manager_T.inl. References ACE_TRACE, ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::index_, ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::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 426 of file Hash_Map_Manager_T.cpp. References ACE_TRACE, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_. Referenced by ACE_Hash_Map_Reverse_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::ACE_Hash_Map_Reverse_Iterator_Ex(), ACE_Hash_Map_Reverse_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::advance(), ACE_Hash_Map_Reverse_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator++(), and ACE_Hash_Map_Iterator_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator--().
00427 { 00428 ACE_TRACE ("ACE_Hash_Map_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i"); 00429 00430 if (this->map_man_->table_ == 0) 00431 return -1; 00432 else if (this->index_ == static_cast<ssize_t> (this->map_man_->total_size_)) 00433 { 00434 this->index_--; 00435 return this->reverse_i (); 00436 } 00437 else if (this->index_ < 0) 00438 return 0; 00439 00440 this->next_ = this->next_->prev_; 00441 if (this->next_ == &this->map_man_->table_[this->index_]) 00442 { 00443 while (--this->index_ >= 0) 00444 { 00445 this->next_ = this->map_man_->table_[this->index_].prev_; 00446 if (this->next_ != &this->map_man_->table_[this->index_]) 00447 break; 00448 } 00449 } 00450 00451 return this->index_ >= 0; 00452 } |
|
|
Keeps track of how far we've advanced in the table.
Definition at line 652 of file Hash_Map_Manager_T.h. Referenced by ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!=(), and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator==(). |
|
|
Keeps track of how far we've advanced in a linked list in each table slot. Definition at line 656 of file Hash_Map_Manager_T.h. Referenced by ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!=(), and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator==(). |