ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE > Class Template Reference

Implements a common base class for iterators for a unordered set. More...

#include <Containers_T.h>

Inheritance diagram for ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >:

Inheritance graph
[legend]
List of all members.

Public Member Functions

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.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Protected Member Functions

 ACE_Fixed_Set_Iterator_Base (ACE_Fixed_Set< T, ACE_SIZE > &s)
void dump_i (void) const
 Dump the state of an object.
int next_i (T *&next_item)

Protected Attributes

ACE_Fixed_Set< T, ACE_SIZE > & s_
 Set we are iterating over.
ssize_t next_
 How far we've advanced over the set.
size_t iterated_items_
 The number of non free items that the iterator had pointed at.

Detailed Description

template<class T, size_t ACE_SIZE>
class ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >

Implements a common base class for iterators for a unordered set.

Definition at line 1207 of file Containers_T.h.


Constructor & Destructor Documentation

template<class T, size_t ACE_SIZE>
ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::ACE_Fixed_Set_Iterator_Base ( ACE_Fixed_Set< T, ACE_SIZE > &  s  )  [protected]

Definition at line 1054 of file Containers_T.cpp.

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

01055   : s_ (s),
01056     next_ (-1),
01057     iterated_items_ (0)
01058 {
01059   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::ACE_Fixed_Set_Iterator_Base");
01060   this->advance ();
01061 }


Member Function Documentation

template<class T, size_t ACE_SIZE>
int ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::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 1064 of file Containers_T.cpp.

References ACE_TRACE, ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::iterated_items_, and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::next_.

Referenced by ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::ACE_Fixed_Set_Iterator_Base(), ACE_Sig_Handlers::dispatch(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::first(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::next_i(), and ACE_Sig_Handlers::remove_handler().

01065 {
01066   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::advance");
01067 
01068   if (this->iterated_items_ < this->s_.cur_size_)
01069     {
01070       for (++this->next_;
01071            static_cast<size_t> (this->next_) < this->s_.max_size_;
01072            ++this->next_)
01073       if (this->s_.search_structure_[this->next_].is_free_ == 0)
01074         {
01075           ++this->iterated_items_;
01076           return 1;
01077         }
01078     }
01079   else
01080     ++this->next_;
01081 
01082   return 0;
01083 }

template<class T, size_t ACE_SIZE>
int ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::done ( void   )  const

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

Definition at line 1096 of file Containers_T.cpp.

References ACE_TRACE, ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::iterated_items_, and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::s_.

01097 {
01098   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::done");
01099 
01100   return ! (this->iterated_items_ < this->s_.cur_size_);
01101 }

template<class T, size_t ACE_SIZE>
void ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::dump_i ( void   )  const [protected]

Dump the state of an object.

Definition at line 1046 of file Containers_T.cpp.

References ACE_TRACE.

01047 {
01048 #if defined (ACE_HAS_DUMP)
01049   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::dump_i");
01050 #endif /* ACE_HAS_DUMP */
01051 }

template<class T, size_t ACE_SIZE>
int ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::first ( void   ) 

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

Definition at line 1086 of file Containers_T.cpp.

References ACE_TRACE, ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::advance(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::iterated_items_, and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::next_.

01087 {
01088   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::first");
01089 
01090   next_ = -1;
01091   iterated_items_ = 0;
01092   return this->advance ();
01093 }

template<class T, size_t ACE_SIZE>
int ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::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.

Reimplemented in ACE_Fixed_Set_Iterator< T, ACE_SIZE >.

template<class T, size_t ACE_SIZE>
int ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::next_i ( T *&  next_item  )  [protected]

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 1104 of file Containers_T.cpp.

References ACE_TRACE, ACE_Double_Linked_List_Iterator< T >::advance(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::advance(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::next_, and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::s_.

Referenced by ACE_Fixed_Set_Const_Iterator< T, ACE_SIZE >::next(), and ACE_Fixed_Set_Iterator< T, ACE_SIZE >::next().

01105 {
01106   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::next_i");
01107 
01108   if (static_cast<size_t> (this->next_) < this->s_.max_size_)
01109     do
01110       {
01111         if (this->s_.search_structure_[this->next_].is_free_ == 0)
01112           {
01113             item = &this->s_.search_structure_[this->next_].item_;
01114             this->advance ();
01115             return 1;
01116           }
01117       }
01118     while (this->advance () == 1);
01119 
01120   return 0;
01121 }


Member Data Documentation

template<class T, size_t ACE_SIZE>
ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Reimplemented in ACE_Fixed_Set_Iterator< T, ACE_SIZE >, and ACE_Fixed_Set_Const_Iterator< T, ACE_SIZE >.

Definition at line 1228 of file Containers_T.h.

template<class T, size_t ACE_SIZE>
size_t ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::iterated_items_ [protected]

The number of non free items that the iterator had pointed at.

Definition at line 1241 of file Containers_T.h.

Referenced by ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::advance(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::done(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::first(), and ACE_Fixed_Set_Iterator< T, ACE_SIZE >::remove().

template<class T, size_t ACE_SIZE>
ssize_t ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::next_ [protected]

How far we've advanced over the set.

Definition at line 1238 of file Containers_T.h.

Referenced by ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::advance(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::first(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::next_i(), ACE_Fixed_Set_Const_Iterator< T, ACE_SIZE >::operator *(), ACE_Fixed_Set_Iterator< T, ACE_SIZE >::operator *(), and ACE_Fixed_Set_Iterator< T, ACE_SIZE >::remove().

template<class T, size_t ACE_SIZE>
ACE_Fixed_Set<T, ACE_SIZE>& ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::s_ [protected]

Set we are iterating over.

Definition at line 1235 of file Containers_T.h.

Referenced by ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::done(), ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::next_i(), ACE_Fixed_Set_Const_Iterator< T, ACE_SIZE >::operator *(), ACE_Fixed_Set_Iterator< T, ACE_SIZE >::operator *(), and ACE_Fixed_Set_Iterator< T, ACE_SIZE >::remove().


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