Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes

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

  : s_ (s),
    next_ (-1),
    iterated_items_ (0)
{
  ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::ACE_Fixed_Set_Iterator_Base");
  this->advance ();
}


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

{
  ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::advance");

  if (this->iterated_items_ < this->s_.cur_size_)
    {
      for (++this->next_;
           static_cast<size_t> (this->next_) < this->s_.max_size_;
           ++this->next_)
      if (this->s_.search_structure_[this->next_].is_free_ == 0)
        {
          ++this->iterated_items_;
          return 1;
        }
    }
  else
    ++this->next_;

  return 0;
}

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

{
  ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::done");

  return ! (this->iterated_items_ < this->s_.cur_size_);
}

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

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

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

{
  ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::first");

  next_ = -1;
  iterated_items_ = 0;
  return this->advance ();
}

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

{
  ACE_TRACE ("ACE_Fixed_Set_Iterator_Base<T, ACE_SIZE>::next_i");

  if (static_cast<size_t> (this->next_) < this->s_.max_size_)
    do
      {
        if (this->s_.search_structure_[this->next_].is_free_ == 0)
          {
            item = &this->s_.search_structure_[this->next_].item_;
            this->advance ();
            return 1;
          }
      }
    while (this->advance () == 1);

  return 0;
}


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 1277 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 1290 of file Containers_T.h.

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 1287 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 1284 of file Containers_T.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines