# class ListIterator

Class used to iterate the items of a list. More...

Full name | `TelEngine::ListIterator`
Definition | `#include <yateclass.h>`
List of all Methods

Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- ListIterator (ObjList& list, int offset = 0)
- ListIterator (HashList& list, int offset = 0)
- ~ListIterator ()
- inline unsigned int length () const
- void clear ()
- void assign (ObjList& list, int offset = 0)
- void assign (HashList& list, int offset = 0)
- GenObject* get (unsigned int index) const
- GenObject* get ()
- inline bool eof () const
- inline void reset ()

## Detailed Description

An ObjList or HashList iterator that can be used even when list elements are changed while iterating. Note that it will not detect that an item was removed and another with the same address was inserted back in list.

ListIterator (ObjList& list, int offset = 0)

### ListIterator

Constructor used to iterate through an ObjList. The image of the list is frozen at the time the constructor executes

Parameters:

list | List to get the objects from
offset | First list element to iterate, will wrap around

ListIterator (HashList& list, int offset = 0)

### ListIterator

Constructor used to iterate through a HashList. The image of the list is frozen at the time the constructor executes

Parameters:

list | List to get the objects from
offset | First list element to iterate, will wrap around

~ListIterator ()

### ~ListIterator

Destructor - frees the allocated memory

inline unsigned int length ()

### length

[const]

Get the number of elements in the list

Returns: Count of items in the internal list

void clear ()

### clear

Clear the iterator, disconnect from any list

void assign (ObjList& list, int offset = 0)

### assign

Assign an ObjList to the iterator, build a frozen image of the list

Parameters:

list | List to get the objects from
offset | First list element to iterate, will wrap around

void assign (HashList& list, int offset = 0)

### assign

Assign a HashList to the iterator, build a frozen image of the list

Parameters:

list | List to get the objects from
offset | First list element to iterate, will wrap around

GenObject* get (unsigned int index)

### get

[const]

Get an arbitrary element in the iterator's list image. Items that were removed from list or are not alive are not returned.

Parameters:

index | Position to get the item from

Returns: Pointer to the list item or NULL if out of range or item removed

GenObject* get ()

### get

Get the current element and advance the current index. Items that were removed from list or are not alive are skipped over. An example of typical usage:

     ListIterator iter(list);
     while (GenObject* obj = iter.get()) {
         do_something_with(obj);
     }

Returns: Pointer to a list item or NULL if advanced past end (eof)

inline bool eof ()

### eof

[const]

Check if the current pointer is past the end of the list

Returns: True if there are no more entries left

inline void reset ()

### reset

Reset the iterator index to the first position in the list

Generated by: paulc on bussard on Fri Dec 21 16:28:34 2012, using kdoc 2.0a54.