Public Member Functions | Public Attributes

ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > Class Template Reference

Reverse Iterator for the ACE_Map_Manager. 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 ACE_Map_Manager.

This class does not perform any internal locking of the ACE_Map_Manager 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 ACE_Map_Manager's internal lock, which is accessible via its <mutex> method.

Definition at line 670 of file Map_Manager.h.


Constructor & Destructor Documentation

template<class EXT_ID, class INT_ID, class ACE_LOCK>
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 
) [inline]

Definition at line 652 of file Map_Manager.inl.

  : ACE_Map_Iterator_Base<EXT_ID, INT_ID, ACE_LOCK> (mm)
{
  if (!pass_end)
    {

#if defined (ACE_HAS_LAZY_MAP_MANAGER)

      // Start here.
      this->next_ = this->map_man_->occupied_list_.prev ();

      while (1)
        {
          // 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;
            }

          // Go to the prev item in the list.
          this->next_ = this->map_man_->search_structure_[this->next_].prev ();
        }

#else

      this->next_ = this->map_man_->occupied_list_.prev ();

#endif /* ACE_HAS_LAZY_MAP_MANAGER */

}
}


Member Function Documentation

template<class EXT_ID , class INT_ID , class ACE_LOCK >
int ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::advance ( void   )  [inline]

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 690 of file Map_Manager.inl.

{
  return this->reverse_i ();
}

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.

{
#if defined (ACE_HAS_DUMP)
  this->dump_i ();
#endif /* ACE_HAS_DUMP */
}

template<class EXT_ID , class INT_ID , class ACE_LOCK >
ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::operator++ ( int   )  [inline]

Postfix reverse.

Definition at line 705 of file Map_Manager.inl.

{
  ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
  ++*this;
  return retv;
}

template<class EXT_ID , class INT_ID , class ACE_LOCK >
ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > & ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::operator++ ( void   )  [inline]

Prefix reverse.

Definition at line 697 of file Map_Manager.inl.

{
  this->reverse_i ();
  return *this;
}

template<class EXT_ID , class INT_ID , class ACE_LOCK >
ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::operator-- ( int   )  [inline]

Postfix advance.

Definition at line 722 of file Map_Manager.inl.

{
  ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> retv (*this);
  --*this;
  return retv;
}

template<class EXT_ID , class INT_ID , class ACE_LOCK >
ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK > & ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK >::operator-- ( void   )  [inline]

Prefix advance.

Definition at line 714 of file Map_Manager.inl.

{
  this->forward_i ();
  return *this;
}


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 701 of file Map_Manager.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines