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, and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::iterated_items_.

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, and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::iterated_items_.

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.

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

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(), and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::iterated_items_.

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, and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::advance().

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(), and ACE_Fixed_Set_Iterator_Base< T, ACE_SIZE >::first().

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.

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.


The documentation for this class was generated from the following files:
Generated on Sun Jan 27 12:54:48 2008 for ACE by doxygen 1.3.6