Public Types | Public Member Functions | Public Attributes | Private Attributes

ACE_Unbounded_Set_Ex_Iterator< T, C > Class Template Reference

Implement an iterator over an unbounded set. More...

#include <Unbounded_Set_Ex.h>

List of all members.

Public Types

typedef ACE_Unbounded_Set_Ex
< T, C > 
container_type
 Type definition of the container type.
typedef std::forward_iterator_tag iterator_category
typedef container_type::value_type value_type
typedef container_type::reference reference
typedef container_type::pointer pointer
typedef
container_type::difference_type 
difference_type

Public Member Functions

 ACE_Unbounded_Set_Ex_Iterator (ACE_Unbounded_Set_Ex< T, C > &s, bool end=false)
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.
ACE_Unbounded_Set_Ex_Iterator
< T, C > 
operator++ (int)
 Postfix advance.
ACE_Unbounded_Set_Ex_Iterator
< T, C > & 
operator++ (void)
 Prefix advance.
T & operator* (void)
 Returns a reference to the internal element this is pointing to.
bool operator== (const ACE_Unbounded_Set_Ex_Iterator< T, C > &) const
 Check if two iterators point to the same position.
bool operator!= (const ACE_Unbounded_Set_Ex_Iterator< T, C > &) const

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Private Attributes

ACE_Node< T, C > * current_
 Pointer to the current node in the iteration.
ACE_Unbounded_Set_Ex< T, C > * set_
 Pointer to the set we're iterating over.

Detailed Description

template<class T, class C>
class ACE_Unbounded_Set_Ex_Iterator< T, C >

Implement an iterator over an unbounded set.

Definition at line 44 of file Unbounded_Set_Ex.h.


Member Typedef Documentation

template<class T, class C>
typedef ACE_Unbounded_Set_Ex<T, C> ACE_Unbounded_Set_Ex_Iterator< T, C >::container_type

Type definition of the container type.

Definition at line 48 of file Unbounded_Set_Ex.h.

Definition at line 55 of file Unbounded_Set_Ex.h.

template<class T, class C>
typedef std::forward_iterator_tag ACE_Unbounded_Set_Ex_Iterator< T, C >::iterator_category

Definition at line 51 of file Unbounded_Set_Ex.h.

template<class T, class C>
typedef container_type::pointer ACE_Unbounded_Set_Ex_Iterator< T, C >::pointer

Definition at line 54 of file Unbounded_Set_Ex.h.

template<class T, class C>
typedef container_type::reference ACE_Unbounded_Set_Ex_Iterator< T, C >::reference

Definition at line 53 of file Unbounded_Set_Ex.h.

template<class T, class C>
typedef container_type::value_type ACE_Unbounded_Set_Ex_Iterator< T, C >::value_type

Definition at line 52 of file Unbounded_Set_Ex.h.


Constructor & Destructor Documentation

template<class T, class C>
ACE_Unbounded_Set_Ex_Iterator< T, C >::ACE_Unbounded_Set_Ex_Iterator ( ACE_Unbounded_Set_Ex< T, C > &  s,
bool  end = false 
)

Definition at line 294 of file Unbounded_Set_Ex.cpp.

  : current_ (!end ? s.head_->next_ : s.head_ ),
    set_ (&s)
{
  // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::ACE_Unbounded_Set_Ex_Iterator");
}


Member Function Documentation

template<class T , class C >
int ACE_Unbounded_Set_Ex_Iterator< T, C >::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 304 of file Unbounded_Set_Ex.cpp.

{
  // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::advance");
  this->current_ = this->current_->next_;
  return this->current_ != this->set_->head_;
}

template<class T , class C >
int ACE_Unbounded_Set_Ex_Iterator< T, C >::done ( void   )  const

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

Definition at line 320 of file Unbounded_Set_Ex.cpp.

{
  ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::done");

  return this->current_ == this->set_->head_;
}

template<class T , class C >
void ACE_Unbounded_Set_Ex_Iterator< T, C >::dump ( void   )  const

Dump the state of an object.

Definition at line 286 of file Unbounded_Set_Ex.cpp.

{
#if defined (ACE_HAS_DUMP)
  // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::dump");
#endif /* ACE_HAS_DUMP */
}

template<class T , class C >
int ACE_Unbounded_Set_Ex_Iterator< T, C >::first ( void   ) 

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

Definition at line 312 of file Unbounded_Set_Ex.cpp.

{
  // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::first");
  this->current_ = this->set_->head_->next_;
  return this->current_ != this->set_->head_;
}

template<class T, class C >
int ACE_Unbounded_Set_Ex_Iterator< T, C >::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 328 of file Unbounded_Set_Ex.cpp.

{
  // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::next");
  if (this->current_ == this->set_->head_)
    return 0;
  else
    {
      item = &this->current_->item_;
      return 1;
    }
}

template<class T, class C>
bool ACE_Unbounded_Set_Ex_Iterator< T, C >::operator!= ( const ACE_Unbounded_Set_Ex_Iterator< T, C > &  rhs  )  const

Definition at line 384 of file Unbounded_Set_Ex.cpp.

{
  //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator!=");
  return (this->set_ != rhs.set_ || this->current_ != rhs.current_);
}

template<class T , class C >
T & ACE_Unbounded_Set_Ex_Iterator< T, C >::operator* ( void   ) 

Returns a reference to the internal element this is pointing to.

Definition at line 364 of file Unbounded_Set_Ex.cpp.

{
  //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator*");
  T *retv = 0;

  int result = this->next (retv);
  ACE_ASSERT (result != 0);
  ACE_UNUSED_ARG (result);

  return *retv;
}

template<class T , class C >
ACE_Unbounded_Set_Ex_Iterator< T, C > & ACE_Unbounded_Set_Ex_Iterator< T, C >::operator++ ( void   ) 

Prefix advance.

Definition at line 353 of file Unbounded_Set_Ex.cpp.

{
  // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator++ (void)");

  // prefix operator

  this->advance ();
  return *this;
}

template<class T , class C >
ACE_Unbounded_Set_Ex_Iterator< T, C > ACE_Unbounded_Set_Ex_Iterator< T, C >::operator++ ( int   ) 

Postfix advance.

Definition at line 341 of file Unbounded_Set_Ex.cpp.

{
  //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator++ (int)");
  ACE_Unbounded_Set_Ex_Iterator<T, C> retv (*this);

  // postfix operator

  this->advance ();
  return retv;
}

template<class T, class C>
bool ACE_Unbounded_Set_Ex_Iterator< T, C >::operator== ( const ACE_Unbounded_Set_Ex_Iterator< T, C > &  rhs  )  const

Check if two iterators point to the same position.

Definition at line 377 of file Unbounded_Set_Ex.cpp.

{
  //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator==");
  return (this->set_ == rhs.set_ && this->current_ == rhs.current_);
}


Member Data Documentation

template<class T, class C>
ACE_Unbounded_Set_Ex_Iterator< T, C >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Definition at line 96 of file Unbounded_Set_Ex.h.

template<class T, class C>
ACE_Node<T, C>* ACE_Unbounded_Set_Ex_Iterator< T, C >::current_ [private]

Pointer to the current node in the iteration.

Definition at line 101 of file Unbounded_Set_Ex.h.

template<class T, class C>
ACE_Unbounded_Set_Ex<T, C>* ACE_Unbounded_Set_Ex_Iterator< T, C >::set_ [private]

Pointer to the set we're iterating over.

Definition at line 104 of file Unbounded_Set_Ex.h.


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