ACE_Bounded_Set_Iterator< T > Class Template Reference

Iterates through an unordered set. More...

#include <Containers_T.h>

List of all members.

Public Member Functions

 ACE_Bounded_Set_Iterator (ACE_Bounded_Set< T > &s)
int next (T *&next_item)
int advance (void)
int first (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

ACE_Bounded_Set< T > & s_
 Set we are iterating over.
ssize_t next_
 How far we've advanced over the set.


Detailed Description

template<class T>
class ACE_Bounded_Set_Iterator< T >

Iterates through an unordered set.

This implementation of an unordered set uses a Bounded array. Allows deletions while iteration is occurring.

Definition at line 1470 of file Containers_T.h.


Constructor & Destructor Documentation

template<class T>
ACE_Bounded_Set_Iterator< T >::ACE_Bounded_Set_Iterator ( ACE_Bounded_Set< T > &  s  ) 

Definition at line 1392 of file Containers_T.cpp.

References ACE_TRACE, and ACE_Bounded_Set_Iterator< T >::advance().

01393   : s_ (s),
01394     next_ (-1)
01395 {
01396   ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::ACE_Bounded_Set_Iterator");
01397   this->advance ();
01398 }


Member Function Documentation

template<class T>
int ACE_Bounded_Set_Iterator< T >::advance ( void   ) 

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

Definition at line 1401 of file Containers_T.cpp.

References ACE_TRACE, and ACE_Bounded_Set_Iterator< T >::next_.

Referenced by ACE_Bounded_Set_Iterator< T >::ACE_Bounded_Set_Iterator(), and ACE_Bounded_Set_Iterator< T >::first().

01402 {
01403   ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::advance");
01404 
01405   for (++this->next_;
01406        static_cast<size_t> (this->next_) < this->s_.cur_size_
01407          && this->s_.search_structure_[this->next_].is_free_;
01408        ++this->next_)
01409     continue;
01410 
01411   return static_cast<size_t> (this->next_) < this->s_.cur_size_;
01412 }

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

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

Definition at line 1424 of file Containers_T.cpp.

References ACE_TRACE, and ACE_Bounded_Set_Iterator< T >::next_.

01425 {
01426   ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::done");
01427 
01428   return static_cast<ACE_CAST_CONST size_t> (this->next_) >=
01429     this->s_.cur_size_;
01430 }

template<class T>
void ACE_Bounded_Set_Iterator< T >::dump ( void   )  const

Dump the state of an object.

Definition at line 1384 of file Containers_T.cpp.

References ACE_TRACE.

01385 {
01386 #if defined (ACE_HAS_DUMP)
01387   ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::dump");
01388 #endif /* ACE_HAS_DUMP */
01389 }

template<class T>
int ACE_Bounded_Set_Iterator< T >::first ( void   ) 

Move to the first element in the set. Returns 0 if the set is empty, else 1.

Definition at line 1415 of file Containers_T.cpp.

References ACE_TRACE, ACE_Bounded_Set_Iterator< T >::advance(), and ACE_Bounded_Set_Iterator< T >::next_.

01416 {
01417   ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::first");
01418 
01419   next_ = -1;
01420   return this->advance ();
01421 }

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

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

Definition at line 1433 of file Containers_T.cpp.

References ACE_TRACE, ACE_Bounded_Set_Iterator< T >::next_, and ACE_Bounded_Set_Iterator< T >::s_.

01434 {
01435   ACE_TRACE ("ACE_Bounded_Set_Iterator<T>::next");
01436   if (static_cast<size_t> (this->next_) < this->s_.cur_size_)
01437     {
01438       item = &this->s_.search_structure_[this->next_].item_;
01439       return 1;
01440     }
01441   else
01442     return 0;
01443 }


Member Data Documentation

template<class T>
ACE_Bounded_Set_Iterator< T >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Definition at line 1497 of file Containers_T.h.

template<class T>
ssize_t ACE_Bounded_Set_Iterator< T >::next_ [private]

How far we've advanced over the set.

Definition at line 1504 of file Containers_T.h.

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

template<class T>
ACE_Bounded_Set<T>& ACE_Bounded_Set_Iterator< T >::s_ [private]

Set we are iterating over.

Definition at line 1501 of file Containers_T.h.

Referenced by ACE_Bounded_Set_Iterator< T >::next().


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