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_INLINE ACE_Array_Iterator< T >::ACE_Array_Iterator ( ACE_Array_Base< T > &   ) 

Definition at line 114 of file Array_Base.inl.

00115     : current_ (0),
00116       array_ (a)
00117 {
00118   // ACE_TRACE ("ACE_Array_Iterator<T>::ACE_Array_Iterator");
00119 }


Member Function Documentation

template<class T>
ACE_INLINE int ACE_Array_Iterator< T >::advance ( void   ) 

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.

References ACE_Array_Iterator< T >::array_.

Referenced by ACE_DLL_Handle::open().

00123 {
00124   // ACE_TRACE ("ACE_Array_Iterator<T>::advance");
00125 
00126   if (this->current_ < array_.size ())
00127     {
00128       ++this->current_;
00129       return 1;
00130     }
00131   else
00132     {
00133       // Already finished iterating.
00134       return 0;
00135     }
00136 }

template<class T>
ACE_INLINE int ACE_Array_Iterator< T >::done ( void   )  const

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

Definition at line 139 of file Array_Base.inl.

References ACE_TRACE, ACE_Array_Iterator< T >::array_, and ACE_Array_Iterator< T >::current_.

00140 {
00141   ACE_TRACE ("ACE_Array_Iterator<T>::done");
00142 
00143   return this->current_ >= array_.size ();
00144 }

template<class T>
ACE_INLINE void ACE_Array_Iterator< T >::dump ( void   )  const

Dump the state of an object.

Definition at line 106 of file Array_Base.inl.

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

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.

References ACE_Array_Iterator< T >::array_, and ACE_Array_Iterator< T >::current_.

Referenced by ACE_DLL_Handle::open().

00218 {
00219   // ACE_TRACE ("ACE_Array_Iterator<T>::next");
00220 
00221   if (this->done ())
00222     {
00223       item = 0;
00224       return 0;
00225     }
00226   else
00227     {
00228       item = &array_[current_];
00229       return 1;
00230     }
00231 }


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.

Referenced by ACE_Array_Iterator< T >::advance(), ACE_Array_Iterator< T >::done(), and ACE_Array_Iterator< T >::next().

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.

Referenced by ACE_Array_Iterator< T >::done(), and ACE_Array_Iterator< T >::next().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:34:54 2010 for ACE by  doxygen 1.4.7