ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > Class Template Reference

Reverse Iterator for the . More...

#include <Map_Manager.h>

Inheritance diagram for ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >:

Inheritance graph
[legend]
Collaboration diagram for ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Map_Reverse_Iterator (ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > &mm, int pass_end=0)
int advance (void)
void dump (void) const
 Dump the state of an object.

ACE_Map_Reverse_Iterator<
EXT_ID, INT_ID, ACE_LOCK > & 
operator++ (void)
 Prefix reverse.

ACE_Map_Reverse_Iterator<
EXT_ID, INT_ID, ACE_LOCK > 
operator++ (int)
 Postfix reverse.

ACE_Map_Reverse_Iterator<
EXT_ID, INT_ID, ACE_LOCK > & 
operator-- (void)
 Prefix advance.

ACE_Map_Reverse_Iterator<
EXT_ID, INT_ID, ACE_LOCK > 
operator-- (int)
 Postfix advance.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Detailed Description

template<class EXT_ID, class INT_ID, class ACE_LOCK>
class ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >

Reverse Iterator for the .

This class does not perform any internal locking of the it is iterating upon since locking is inherently inefficient and/or error-prone within an STL-style iterator. If you require locking, you can explicitly use an ACE_Guard or ACE_Read_Guard on the 's internal lock, which is accessible via its method.

Definition at line 668 of file Map_Manager.h.


Constructor & Destructor Documentation

template<class EXT_ID, class INT_ID, class ACE_LOCK>
ACE_INLINE ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::ACE_Map_Reverse_Iterator ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK > &  mm,
int  pass_end = 0
 

Definition at line 644 of file Map_Manager.inl.

References ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::done().

00646   : ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> (mm)
00647 {
00648   if (!pass_end)
00649     {
00650 
00651 #if defined (ACE_HAS_LAZY_MAP_MANAGER)
00652 
00653       // Start here.
00654       this->next_ = this->map_man_->occupied_list_.prev ();
00655 
00656       while (1)
00657         {
00658           // Stop if we reach the end.
00659           if (this->done ())
00660             break;
00661 
00662           // Break if we find a non-free slot.
00663           if (!this->map_man_->search_structure_[this->next_].free_)
00664             {
00665               break;
00666             }
00667 
00668           // Go to the prev item in the list.
00669           this->next_ = this->map_man_->search_structure_[this->next_].prev ();
00670         }
00671 
00672 #else
00673 
00674       this->next_ = this->map_man_->occupied_list_.prev ();
00675 
00676 #endif /* ACE_HAS_LAZY_MAP_MANAGER */
00677 
00678 }
00679 }


Member Function Documentation

template<class EXT_ID, class INT_ID, class ACE_LOCK>
ACE_INLINE int ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::advance void   ) 
 

Move forward by one element in the set. Returns 0 when all the items in the set have been seen, else 1.

Definition at line 682 of file Map_Manager.inl.

References ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::reverse_i().

00683 {
00684   return this->reverse_i ();
00685 }

template<class EXT_ID, class INT_ID, class ACE_LOCK>
void ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::dump void   )  const
 

Dump the state of an object.

Definition at line 692 of file Map_Manager.cpp.

References ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::dump_i().

00693 {
00694 #if defined (ACE_HAS_DUMP)
00695   this->dump_i ();
00696 #endif /* ACE_HAS_DUMP */
00697 }

template<class EXT_ID, class INT_ID, class ACE_LOCK>
ACE_INLINE ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::operator++ int   ) 
 

Postfix reverse.

Definition at line 697 of file Map_Manager.inl.

00698 {
00699   ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
00700   ++*this;
00701   return retv;
00702 }

template<class EXT_ID, class INT_ID, class ACE_LOCK>
ACE_INLINE ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > & ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::operator++ void   ) 
 

Prefix reverse.

Definition at line 689 of file Map_Manager.inl.

References ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::reverse_i().

00690 {
00691   this->reverse_i ();
00692   return *this;
00693 }

template<class EXT_ID, class INT_ID, class ACE_LOCK>
ACE_INLINE ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::operator-- int   ) 
 

Postfix advance.

Definition at line 714 of file Map_Manager.inl.

00715 {
00716   ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
00717   --*this;
00718   return retv;
00719 }

template<class EXT_ID, class INT_ID, class ACE_LOCK>
ACE_INLINE ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > & ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::operator-- void   ) 
 

Prefix advance.

Definition at line 706 of file Map_Manager.inl.

References ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >::forward_i().

00707 {
00708   this->forward_i ();
00709   return *this;
00710 }


Member Data Documentation

template<class EXT_ID, class INT_ID, class ACE_LOCK>
ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Reimplemented from ACE_Map_Iterator_Base< EXT_ID, INT_ID, ACE_LOCK >.

Definition at line 699 of file Map_Manager.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:24:34 2006 for ACE by doxygen 1.3.6