ACE_Hash_Multi_Map_Manager.  
More...
#include <Hash_Multi_Map_Manager_T.h>
Inheritance diagram for ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >:

| Public Member Functions | |
| ACE_Hash_Multi_Map_Const_Iterator_Base (const ACE_Hash_Multi_Map_Manager< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &mm, int head) | |
| int | next (ACE_Hash_Multi_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_Multi_Map_Entry< EXT_ID, INT_ID > & | operator * (void) const | 
| Returns a reference to the interal element this object is pointing to. | |
| ACE_Hash_Multi_Map_Entry< EXT_ID, INT_ID > * | operator-> (void) const | 
| Returns a pointer to the interal element this object is pointing to. | |
| const ACE_Hash_Multi_Map_Manager< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | map (void) | 
| bool | operator== (const ACE_Hash_Multi_Map_Const_Iterator_Base< 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_Multi_Map_Const_Iterator_Base< 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 | |
| const ACE_Hash_Multi_Map_Manager< 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_Multi_Map_Entry< EXT_ID, INT_ID > * | next_ | 
ACE_Hash_Multi_Map_Manager. 
This class factors out common code from its templatized subclasses.
Definition at line 680 of file Hash_Multi_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 564 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE, ssize_t, ACE_Hash_Multi_Map_Manager< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::table_, and ACE_Hash_Multi_Map_Manager< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::total_size_. 
 00566 : map_man_ (&mm), 00567 index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), 00568 next_ (0) 00569 { 00570 ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Const_Iterator_Base"); 00571 00572 if (mm.table_ != 0) 00573 this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; 00574 } | 
| 
 | ||||||||||
| Returns 1 when all items have been seen, else 0. 
 Definition at line 594 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE, and ssize_t. 
 | 
| 
 | ||||||||||
| Dump the state of an object. 
 Definition at line 534 of file Hash_Multi_Map_Manager_T.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_TEXT, ACE_TRACE, and LM_DEBUG. Referenced by ACE_Hash_Multi_Map_Const_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::dump(). 
 00535 {
00536   ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i");
00537 
00538   ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
00539   ACE_DEBUG ((LM_DEBUG,  ACE_TEXT ("index_ = %d "), this->index_));
00540   ACE_DEBUG ((LM_DEBUG,  ACE_TEXT ("next_ = %x"), this->next_));
00541   ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
00542 }
 | 
| 
 | ||||||||||
| 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 545 of file Hash_Multi_Map_Manager_T.cpp. References ACE_TRACE, and ssize_t. Referenced by ACE_Hash_Multi_Map_Const_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::ACE_Hash_Multi_Map_Const_Iterator(), ACE_Hash_Multi_Map_Const_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::advance(), and ACE_Hash_Multi_Map_Const_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator++(). 
 00546 {
00547   ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i");
00548 
00549   if (this->map_man_->table_ == 0)
00550     return -1;
00551   // Handle initial case specially.
00552   else if (this->index_ == -1)
00553     {
00554       this->index_++;
00555       return this->forward_i ();
00556     }
00557   else if (this->index_ >= (ssize_t) this->map_man_->total_size_)
00558     return 0;
00559 
00560   this->next_ = this->next_->next_;
00561   if (this->next_ == &this->map_man_->table_[this->index_])
00562     {
00563       while (++this->index_ < (ssize_t) this->map_man_->total_size_)
00564         {
00565           this->next_ = this->map_man_->table_[this->index_].next_;
00566           if (this->next_ != &this->map_man_->table_[this->index_])
00567             break;
00568         }
00569     }
00570 
00571   return this->index_ < (ssize_t) this->map_man_->total_size_;
00572 }
 | 
| 
 | ||||||||||
| 
Returns reference the  Definition at line 637 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE. 
 | 
| 
 | ||||||||||
| 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 577 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE, and ssize_t. Referenced by ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator *(), and ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator->(). 
 00578 {
00579   ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next");
00580 
00581   if (this->map_man_->table_ != 0
00582       && this->index_ < (ssize_t) this->map_man_->total_size_
00583       && this->index_ >= 0
00584       && this->next_ != &this->map_man_->table_[this->index_])
00585     {
00586       entry = this->next_;
00587       return 1;
00588     }
00589   else
00590     return 0;
00591 }
 | 
| 
 | ||||||||||
| Returns a reference to the interal element this object is pointing to. 
 Definition at line 605 of file Hash_Multi_Map_Manager_T.inl. References ACE_ASSERT, ACE_TRACE, and ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next(). 
 00606 {
00607   ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*");
00608   ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *retv = 0;
00609 
00610   int result = this->next (retv);
00611 
00612   ACE_UNUSED_ARG (result);
00613   ACE_ASSERT (result != 0);
00614 
00615   return *retv;
00616 }
 | 
| 
 | ||||||||||
| 
 | ||||||||||
| Returns a pointer to the interal element this object is pointing to. 
 Definition at line 620 of file Hash_Multi_Map_Manager_T.inl. References ACE_ASSERT, ACE_TRACE, and ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next(). 
 00621 {
00622   ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator->");
00623   ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *retv = 0;
00624 
00625   int result = this->next (retv);
00626 
00627   ACE_UNUSED_ARG (result);
00628   ACE_ASSERT (result != 0);
00629 
00630   return retv;
00631 }
 | 
| 
 | ||||||||||
| Check if two iterators point to the same position. 
 Definition at line 644 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE, ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::index_, ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_, and ACE_Hash_Multi_Map_Const_Iterator_Base< 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 575 of file Hash_Multi_Map_Manager_T.cpp. References ACE_TRACE, and ssize_t. Referenced by ACE_Hash_Multi_Map_Const_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator--(). 
 00576 {
00577   ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i");
00578 
00579   if (this->map_man_->table_ == 0)
00580     return -1;
00581   else if (this->index_ == (ssize_t) this->map_man_->total_size_)
00582     {
00583       this->index_--;
00584       return this->reverse_i ();
00585     }
00586   else if (this->index_ < 0)
00587     return 0;
00588 
00589   this->next_ = this->next_->prev_;
00590   if (this->next_ == &this->map_man_->table_[this->index_])
00591     {
00592       while (--this->index_ >= 0)
00593         {
00594           this->next_ = this->map_man_->table_[this->index_].prev_;
00595           if (this->next_ != &this->map_man_->table_[this->index_])
00596             break;
00597         }
00598     }
00599 
00600   return this->index_ >= 0;
00601 }
 | 
| 
 | |||||
| Declare the dynamic allocation hooks. 
 Reimplemented in ACE_Hash_Multi_Map_Const_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >. Definition at line 713 of file Hash_Multi_Map_Manager_T.h. | 
| 
 | |||||
| Keeps track of how far we've advanced in the table. 
 Definition at line 731 of file Hash_Multi_Map_Manager_T.h. Referenced by ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!=(), and ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator==(). | 
| 
 | |||||
| Map we are iterating over. 
 Definition at line 728 of file Hash_Multi_Map_Manager_T.h. Referenced by ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!=(), and ACE_Hash_Multi_Map_Const_Iterator_Base< 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 735 of file Hash_Multi_Map_Manager_T.h. Referenced by ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!=(), and ACE_Hash_Multi_Map_Const_Iterator_Base< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator==(). | 
 1.3.6
 
1.3.6