#include <Array_Base.h>
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. |
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.
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 }
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 }
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 }
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 }
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 }
ACE_Array_Iterator< T >::ACE_ALLOC_HOOK_DECLARE |
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().
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().