Public Member Functions | Public Attributes | Private Attributes

ACE_Array_Iterator< T > Class Template Reference

Implement an iterator over an ACE_Array. More...

#include <Array_Base.h>

List of all members.

Public Member Functions

 ACE_Array_Iterator (ACE_Array_Base< T > &)
int next (T *&next_item)
int advance (void)
int done (void) const
 Returns 1 when all items have been seen, else 0.
void dump (void) const
 Dump the state of an object.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Private Attributes

size_t current_
 Pointer to the current item in the iteration.
ACE_Array_Base< T > & array_
 Pointer to the Array we're iterating over.

Detailed Description

template<class T>
class ACE_Array_Iterator< T >

Implement an iterator over an ACE_Array.

This iterator is safe in the face of array element deletions. But it is NOT safe if the array is resized (via the ACE_Array assignment operator) during iteration. That would be very odd, and dangerous.

Definition at line 207 of file Array_Base.h.


Constructor & Destructor Documentation

template<class T >
ACE_Array_Iterator< T >::ACE_Array_Iterator ( ACE_Array_Base< T > &  a  )  [inline]

Definition at line 114 of file Array_Base.inl.

    : current_ (0),
      array_ (a)
{
  // ACE_TRACE ("ACE_Array_Iterator<T>::ACE_Array_Iterator");
}


Member Function Documentation

template<class T >
int ACE_Array_Iterator< T >::advance ( void   )  [inline]

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

Definition at line 122 of file Array_Base.inl.

{
  // ACE_TRACE ("ACE_Array_Iterator<T>::advance");

  if (this->current_ < array_.size ())
    {
      ++this->current_;
      return 1;
    }
  else
    {
      // Already finished iterating.
      return 0;
    }
}

template<class T >
int ACE_Array_Iterator< T >::done ( void   )  const [inline]

Returns 1 when all items have been seen, else 0.

Definition at line 139 of file Array_Base.inl.

{
  ACE_TRACE ("ACE_Array_Iterator<T>::done");

  return this->current_ >= array_.size ();
}

template<class T >
void ACE_Array_Iterator< T >::dump ( void   )  const [inline]

Dump the state of an object.

Definition at line 106 of file Array_Base.inl.

{
#if defined (ACE_HAS_DUMP)
  // ACE_TRACE ("ACE_Array_Iterator<T>::dump");
#endif /* ACE_HAS_DUMP */
}

template<class T >
int ACE_Array_Iterator< T >::next ( T *&  next_item  ) 

Pass back the next_item that hasn't been seen in the Array. Returns 0 when all items have been seen, else 1.

Definition at line 217 of file Array_Base.cpp.

{
  // ACE_TRACE ("ACE_Array_Iterator<T>::next");

  if (this->done ())
    {
      item = 0;
      return 0;
    }
  else
    {
      item = &array_[current_];
      return 1;
    }
}


Member Data Documentation

template<class T>
ACE_Array_Iterator< T >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Definition at line 230 of file Array_Base.h.

template<class T>
ACE_Array_Base<T>& ACE_Array_Iterator< T >::array_ [private]

Pointer to the Array we're iterating over.

Definition at line 237 of file Array_Base.h.

template<class T>
size_t ACE_Array_Iterator< T >::current_ [private]

Pointer to the current item in the iteration.

Definition at line 234 of file Array_Base.h.


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