Iterator for the ACE_Map_Manager. More...
#include <Map_Manager.h>
Public Member Functions | |
ACE_Map_Iterator_Base (ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > &mm) | |
int | next (ACE_Map_Entry< EXT_ID, INT_ID > *&next_entry) const |
int | done (void) const |
Returns 1 when all items have been seen, else 0. | |
ACE_Map_Entry< EXT_ID, INT_ID > & | operator* (void) const |
Returns a reference to the interal element this is pointing to. | |
ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > & | map (void) |
bool | operator== (const ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK > &) const |
Check if two iterators point to the same position. | |
bool | operator!= (const ACE_Map_Iterator_Base< EXT_ID, INT_ID, 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_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > * | map_man_ |
Map we are iterating over. | |
ACE_UINT32 | next_ |
Keeps track of how far we've advanced... |
Iterator for the ACE_Map_Manager.
This class factors out common code from its templatized subclasses.
Definition at line 454 of file Map_Manager.h.
ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::ACE_Map_Iterator_Base | ( | ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > & | mm | ) | [inline] |
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 282 of file Map_Manager.inl.
int ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::done | ( | void | ) | const [inline] |
Returns 1 when all items have been seen, else 0.
Definition at line 301 of file Map_Manager.inl.
void ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::dump_i | ( | void | ) | const [protected] |
Dump the state of an object.
Definition at line 624 of file Map_Manager.cpp.
{ #if defined (ACE_HAS_DUMP) ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("next_ = %d"), this->next_)); ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); #endif /* ACE_HAS_DUMP */ }
int ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::forward_i | ( | void | ) | [inline, protected] |
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 307 of file Map_Manager.inl.
{ #if defined (ACE_HAS_LAZY_MAP_MANAGER) while (1) { // Go to the next item in the list. this->next_ = this->map_man_->search_structure_[this->next_].next (); // Stop if we reach the end. if (this->done ()) break; // Break if we find a non-free slot. if (!this->map_man_->search_structure_[this->next_].free_) { break; } } #else this->next_ = this->map_man_->search_structure_[this->next_].next (); #endif /* ACE_HAS_LAZY_MAP_MANAGER */ return this->next_ != this->map_man_->occupied_list_id (); }
ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > & ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::map | ( | void | ) | [inline] |
Returns reference the Map_Manager that is being iterated over.
Definition at line 370 of file Map_Manager.inl.
{ return *this->map_man_; }
int ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::next | ( | ACE_Map_Entry< EXT_ID, INT_ID > *& | next_entry | ) | const [inline] |
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 289 of file Map_Manager.inl.
bool ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::operator!= | ( | const ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK > & | rhs | ) | const [inline] |
Definition at line 383 of file Map_Manager.inl.
{ return !this->operator== (rhs); }
ACE_Map_Entry< EXT_ID, INT_ID > & ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::operator* | ( | void | ) | const |
Returns a reference to the interal element this
is pointing to.
Definition at line 645 of file Map_Manager.cpp.
{ // @@ This function should be inlined. We moved it here to avoid a // compiler bug in SunCC 4.2. Once we know the correct patch to fix // the compiler problem, it should be moved back to .i file again. ACE_Map_Entry<EXT_ID, INT_ID> *retv = 0; int result = this->next (retv); ACE_ASSERT (result != 0); ACE_UNUSED_ARG (result); return *retv; }
bool ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::operator== | ( | const ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK > & | rhs | ) | const [inline] |
Check if two iterators point to the same position.
Definition at line 376 of file Map_Manager.inl.
int ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::reverse_i | ( | void | ) | [inline, protected] |
Move backware 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 338 of file Map_Manager.inl.
{ #if defined (ACE_HAS_LAZY_MAP_MANAGER) while (1) { // Go to the prev item in the list. this->next_ = this->map_man_->search_structure_[this->next_].prev (); // Stop if we reach the end. if (this->done ()) break; // Break if we find a non-free slot. if (!this->map_man_->search_structure_[this->next_].free_) { break; } } #else this->next_ = this->map_man_->search_structure_[this->next_].prev (); #endif /* ACE_HAS_LAZY_MAP_MANAGER */ return this->next_ != this->map_man_->occupied_list_id (); }
ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.
Reimplemented in ACE_Map_Iterator< EXT_ID, INT_ID, ACE_LOCK >, ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >, ACE_Map_Iterator< KEY, VALUE, ACE_Null_Mutex >, ACE_Map_Iterator< ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex >, ACE_Map_Reverse_Iterator< KEY, VALUE, ACE_Null_Mutex >, and ACE_Map_Reverse_Iterator< ACE_Active_Map_Manager_Key, VALUE, ACE_Null_Mutex >.
Definition at line 483 of file Map_Manager.h.
ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>* ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::map_man_ [protected] |
Map we are iterating over.
Definition at line 498 of file Map_Manager.h.
ACE_UINT32 ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::next_ [protected] |
Keeps track of how far we've advanced...
Definition at line 501 of file Map_Manager.h.