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