#include <Map_Manager.h>
Inheritance diagram for ACE_Map_Iterator_Base:


Public Methods | |
| ACE_Map_Iterator_Base (ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > &mm) | |
| 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_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_Map_Entry< EXT_ID, INT_ID > & | operator * (void) const |
| Returns a reference to the interal element <this> is pointing to. More... | |
| ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > & | map (void) |
| Returns reference the Map_Manager that is being iterated over. More... | |
| int | operator== (const ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK > &) const |
| Check if two iterators point to the same position. More... | |
| int | operator!= (const ACE_Map_Iterator_Base< EXT_ID, INT_ID, 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 backware 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 | |
| ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > * | map_man_ |
| Map we are iterating over. More... | |
| ACE_UINT32 | next_ |
| Keeps track of how far we've advanced... More... | |
This class factors out common code from its templatized subclasses.
Definition at line 448 of file Map_Manager.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 268 of file Map_Manager.i.
|
|
||||||||||
|
Returns 1 when all items have been seen, else 0.
Definition at line 287 of file Map_Manager.i. References map_man_, and next_. Referenced by ACE_Map_Iterator::ACE_Map_Iterator, ACE_Map_Reverse_Iterator::ACE_Map_Reverse_Iterator, forward_i, and reverse_i.
|
|
||||||||||
|
Dump the state of an object.
Definition at line 627 of file Map_Manager.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_LIB_TEXT, and LM_DEBUG. Referenced by ACE_Map_Reverse_Iterator::dump, and ACE_Map_Iterator::dump.
00628 {
00629 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
00630 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("next_ = %d"), this->next_));
00631 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
00632 }
|
|
||||||||||
|
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 293 of file Map_Manager.i. References done, map_man_, and next_. Referenced by ACE_Map_Iterator::advance, ACE_Map_Iterator::operator++, and ACE_Map_Reverse_Iterator::operator--.
00294 {
00295
00296 #if defined (ACE_HAS_LAZY_MAP_MANAGER)
00297
00298 while (1)
00299 {
00300 // Go to the next item in the list.
00301 this->next_ = this->map_man_->search_structure_[this->next_].next ();
00302
00303 // Stop if we reach the end.
00304 if (this->done ())
00305 break;
00306
00307 // Break if we find a non-free slot.
00308 if (!this->map_man_->search_structure_[this->next_].free_)
00309 {
00310 break;
00311 }
00312 }
00313
00314 #else
00315
00316 this->next_ = this->map_man_->search_structure_[this->next_].next ();
00317
00318 #endif /* ACE_HAS_LAZY_MAP_MANAGER */
00319
00320 return this->next_ != this->map_man_->occupied_list_id ();
00321 }
|
|
||||||||||
|
Returns reference the Map_Manager that is being iterated over.
Definition at line 356 of file Map_Manager.i. References map_man_.
00357 {
00358 return *this->map_man_;
00359 }
|
|
||||||||||
|
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 275 of file Map_Manager.i. References map_man_, and next_. Referenced by ACE_Token_Collection::acquire, ACE_Connector< SVC_HANDLER, ACE_PEER_CONNECTOR_2 >::cancel, ACE_WIN32_Asynch_Connect::cancel_uncompleted, ACE_POSIX_Asynch_Connect::cancel_uncompleted, ACE_Token_Manager::check_deadlock, operator *, ACE_Token_Collection::release, ACE_Token_Collection::renew, ACE_Token_Manager::token_waiting_for, ACE_Token_Collection::tryacquire, ACE_Token_Collection::~ACE_Token_Collection, ACE_Token_Invariant_Manager::~ACE_Token_Invariant_Manager, and ACE_Token_Manager::~ACE_Token_Manager.
|
|
||||||||||
|
Returns a reference to the interal element <this> is pointing to.
Definition at line 644 of file Map_Manager.cpp. References ACE_ASSERT, and next.
00645 {
00646 // @@ This function should be inlined. We moved it here to avoid a
00647 // compiler bug in SunCC 4.2. Once we know the correct patch to fix
00648 // the compiler problem, it should be moved back to .i file again.
00649 ACE_Map_Entry<EXT_ID, INT_ID> *retv = 0;
00650
00651 int result = this->next (retv);
00652 ACE_ASSERT (result != 0);
00653 ACE_UNUSED_ARG (result);
00654
00655 return *retv;
00656 }
|
|
||||||||||
|
Definition at line 369 of file Map_Manager.i. References operator==.
00370 {
00371 return !this->operator== (rhs);
00372 }
|
|
||||||||||
|
Check if two iterators point to the same position.
Definition at line 362 of file Map_Manager.i. References map_man_, and next_. Referenced by operator!=.
|
|
||||||||||
|
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 324 of file Map_Manager.i. References done, map_man_, and next_. Referenced by ACE_Map_Reverse_Iterator::advance, ACE_Map_Reverse_Iterator::operator++, and ACE_Map_Iterator::operator--.
00325 {
00326
00327 #if defined (ACE_HAS_LAZY_MAP_MANAGER)
00328
00329 while (1)
00330 {
00331 // Go to the prev item in the list.
00332 this->next_ = this->map_man_->search_structure_[this->next_].prev ();
00333
00334 // Stop if we reach the end.
00335 if (this->done ())
00336 break;
00337
00338 // Break if we find a non-free slot.
00339 if (!this->map_man_->search_structure_[this->next_].free_)
00340 {
00341 break;
00342 }
00343 }
00344
00345 #else
00346
00347 this->next_ = this->map_man_->search_structure_[this->next_].prev ();
00348
00349 #endif /* ACE_HAS_LAZY_MAP_MANAGER */
00350
00351 return this->next_ != this->map_man_->occupied_list_id ();
00352 }
|
|
|||||
|
Declare the dynamic allocation hooks.
Reimplemented in ACE_Map_Iterator. Definition at line 477 of file Map_Manager.h. |
|
|||||
|
Map we are iterating over.
Definition at line 492 of file Map_Manager.h. Referenced by ACE_Map_Iterator::ACE_Map_Iterator, ACE_Map_Reverse_Iterator::ACE_Map_Reverse_Iterator, done, forward_i, map, next, operator==, and reverse_i. |
|
|||||
|
Keeps track of how far we've advanced...
Definition at line 495 of file Map_Manager.h. Referenced by ACE_Map_Iterator::ACE_Map_Iterator, ACE_Map_Reverse_Iterator::ACE_Map_Reverse_Iterator, done, forward_i, next, operator==, and reverse_i. |
1.2.14 written by Dimitri van Heesch,
© 1997-2002