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 267 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 76 of file Vector_T.inl.

00077     : current_ (0),
00078       vector_ (v)
00079 {
00080   // ACE_TRACE ("ACE_Vector_Iterator<T>::ACE_Vector_Iterator");
00081 }


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 84 of file Vector_T.inl.

References ACE_Vector_Iterator< T, DEFAULT_SIZE >::vector_.

00085 {
00086   // ACE_TRACE ("ACE_Vector_Iterator<T>::advance");
00087 
00088   if (this->current_ < vector_.size ())
00089     {
00090       ++this->current_;
00091       return 1;
00092     }
00093   else
00094     // Already finished iterating.
00095     return 0;
00096 }

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 99 of file Vector_T.inl.

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

00100 {
00101   ACE_TRACE ("ACE_Vector_Iterator<T>::done");
00102 
00103   return this->current_ >= vector_.size ();
00104 }

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 70 of file Vector_T.inl.

00071 {
00072   // ACE_TRACE ("ACE_Vector_Iterator<T>::dump");
00073 }

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

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

Definition at line 136 of file Vector_T.cpp.

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

00137 {
00138   // ACE_TRACE ("ACE_Vector_Iterator<T>::next");
00139 
00140   if (this->done ())
00141     {
00142       item = 0;
00143       return 0;
00144     }
00145   else
00146     {
00147       item = &vector_[current_];
00148       return 1;
00149     }
00150 }


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 290 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 294 of file Vector_T.h.

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

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 297 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 Tue Feb 2 17:35:52 2010 for ACE by  doxygen 1.4.7