NAME
ACE_DLList_Iterator -
A double-linked list container class iterator.
SYNOPSIS
#include <ace/Containers.h>
template<class T>
class ACE_DLList_Iterator :
public ACE_Double_Linked_List_Iterator <ACE_DLList_Node>
{
public:
friend class ACE_DLList<T>;
friend class ACE_DLList_Node;
ACE_DLList_Iterator (ACE_DLList<T> &l);
void reset (ACE_DLList<T> &l);
int advance (void);
int next (T *&);
T *next (void) const;
int remove (void);
void dump (void) const;
private:
ACE_DLList<T> *list_;
};
DESCRIPTION
This implementation uses ACE_Double_Linked_List_Iterator to
perform the logic behind this container class. It delegates
all of its calls to ACE_Double_Linked_List_Iterator.
Initialization method.
ACE_DLList_Iterator (ACE_DLList<T> &l);
void reset (ACE_DLList<T> &l);
Retasks the iterator to iterate over a new
Double_Linked_List. This allows clients to reuse an iterator
without incurring the constructor overhead. If you do use this,
be aware that if there are more than one reference to this
iterator, the other "clients" may be very bothered when their
iterator changes.
@@ Here be dragons. Comments?
Iteration methods.
int advance (void);
Move forward by one element in the set. Returns 0 when all the
items in the set have been seen, else 1.
int next (T *&);
Pass back the next_item
that hasn't been seen in the Stack.
Returns 0 when all items have been seen, else 1.
T *next (void) const;
Delegates to ACE_Double_Linked_List_Iterator, except that whereas
the Double_Linked_List version of next returns the node, this next
returns the contents of the node
DEPRECATED
int remove (void);
Removes the current item (i.e., next
) from the list.
void dump (void) const;
Delegates to ACE_Double_Linked_List_Iterator.
AUTHOR
Doug Schmidt
Initialization and termination methods.
Check boundary conditions.
Classic unordered set operations.
LIBRARY
ace