ACE_Vector_Iterator< T, DEFAULT_SIZE > Class Template Reference

Implement an iterator over an ACE_Vector. More...

#include <Vector_T.h>

List of all members.

Public Member Functions

 ACE_Vector_Iterator (ACE_Vector< T, DEFAULT_SIZE > &)
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_Vector< T, DEFAULT_SIZE > & vector_
 Reference to the vector we're iterating over.


Detailed Description

template<class T, size_t DEFAULT_SIZE = ACE_VECTOR_DEFAULT_SIZE>
class ACE_Vector_Iterator< T, DEFAULT_SIZE >

Implement an iterator over an ACE_Vector.

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

Definition at line 265 of file Vector_T.h.


Constructor & Destructor Documentation

template<class T, size_t DEFAULT_SIZE>
ACE_INLINE ACE_Vector_Iterator< T, DEFAULT_SIZE >::ACE_Vector_Iterator ACE_Vector< T, DEFAULT_SIZE > &   ) 
 

Definition at line 63 of file Vector_T.inl.

References v.

00064     : current_ (0),
00065       vector_ (v)
00066 {
00067   // ACE_TRACE ("ACE_Vector_Iterator<T>::ACE_Vector_Iterator");
00068 }


Member Function Documentation

template<class T, size_t DEFAULT_SIZE>
ACE_INLINE int ACE_Vector_Iterator< T, DEFAULT_SIZE >::advance void   ) 
 

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

Definition at line 71 of file Vector_T.inl.

References ACE_Vector_Iterator< T, DEFAULT_SIZE >::vector_.

00072 {
00073   // ACE_TRACE ("ACE_Vector_Iterator<T>::advance");
00074 
00075   if (this->current_ < vector_.size ())
00076     {
00077       ++this->current_;
00078       return 1;
00079     }
00080   else
00081     {
00082       // Already finished iterating.
00083       return 0;
00084     }
00085 }

template<class T, size_t DEFAULT_SIZE>
ACE_INLINE int ACE_Vector_Iterator< T, DEFAULT_SIZE >::done void   )  const
 

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

Definition at line 88 of file Vector_T.inl.

References ACE_TRACE, and ACE_Vector_Iterator< T, DEFAULT_SIZE >::vector_.

Referenced by ACE_Vector_Iterator< T, DEFAULT_SIZE >::next().

00089 {
00090   ACE_TRACE ("ACE_Vector_Iterator<T>::done");
00091 
00092   return this->current_ >= vector_.size ();
00093 }

template<class T, size_t DEFAULT_SIZE>
ACE_INLINE void ACE_Vector_Iterator< T, DEFAULT_SIZE >::dump void   )  const
 

Dump the state of an object.

Definition at line 57 of file Vector_T.inl.

00058 {
00059   // ACE_TRACE ("ACE_Vector_Iterator<T>::dump");
00060 }

template<class T, size_t DEFAULT_SIZE>
int ACE_Vector_Iterator< T, DEFAULT_SIZE >::next T *&  next_item  ) 
 

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

Definition at line 147 of file Vector_T.cpp.

References ACE_Vector_Iterator< T, DEFAULT_SIZE >::done(), and ACE_Vector_Iterator< T, DEFAULT_SIZE >::vector_.

00148 {
00149   // ACE_TRACE ("ACE_Vector_Iterator<T>::next");
00150 
00151   if (this->done ())
00152     {
00153       item = 0;
00154       return 0;
00155     }
00156   else
00157     {
00158       item = &vector_[current_];
00159       return 1;
00160     }
00161 }


Member Data Documentation

template<class T, size_t DEFAULT_SIZE = ACE_VECTOR_DEFAULT_SIZE>
ACE_Vector_Iterator< T, DEFAULT_SIZE >::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Definition at line 288 of file Vector_T.h.

template<class T, size_t DEFAULT_SIZE = ACE_VECTOR_DEFAULT_SIZE>
size_t ACE_Vector_Iterator< T, DEFAULT_SIZE >::current_ [private]
 

Pointer to the current item in the iteration.

Definition at line 292 of file Vector_T.h.

template<class T, size_t DEFAULT_SIZE = ACE_VECTOR_DEFAULT_SIZE>
ACE_Vector<T, DEFAULT_SIZE>& ACE_Vector_Iterator< T, DEFAULT_SIZE >::vector_ [private]
 

Reference to the vector we're iterating over.

Definition at line 295 of file Vector_T.h.

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


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