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

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

01059   : s_ (s),
01060     next_ (-1),
01061     iterated_items_ (0)
01062 {
01063   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::ACE_Fixed_Set_Iterator_Base");
01064   this->advance ();
01065 }


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 1068 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_.

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().

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

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 1100 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_.

01101 {
01102   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::done");
01103 
01104   return ! (this->iterated_items_ < this->s_.cur_size_);
01105 }

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 1050 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().

01051 {
01052 #if defined (ACE_HAS_DUMP)
01053   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::dump_i");
01054 #endif /* ACE_HAS_DUMP */
01055 }

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 1090 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_.

01091 {
01092   ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::first");
01093 
01094   next_ = -1;
01095   iterated_items_ = 0;
01096   return this->advance ();
01097 }

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 1108 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 >::s_.

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

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


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 1230 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 1243 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 1240 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 1237 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 >::next_i().


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:22:22 2006 for ACE by doxygen 1.3.6