All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ConstListIterator Class Reference

For use on the stack only: iterates through elements of a const QoreListNode. More...

`#include <QoreListNode.h>`

Collaboration diagram for ConstListIterator:
[legend]

## Public Member Functions

DLLEXPORT | ConstListIterator (const QoreListNode *lst, qore_size_t n_pos=-1)
| initializes the iterator to the position given or, if omitted, just before the first element
DLLEXPORT | ConstListIterator (const QoreListNode &lst, qore_size_t n_pos=-1)
| initializes the iterator to the position given or, if omitted, just before the first element
DLLEXPORT bool | next ()
| moves the iterator to the next element, returns true if the iterator is pointing to an element of the list
DLLEXPORT bool | prev ()
| moves the iterator to the previous element, returns true if the iterator is pointing to an element of the list
DLLEXPORT int | set (qore_size_t n_pos)
| sets the iterator to a specific position in the list
DLLEXPORT const AbstractQoreNode * | getValue () const
| returns a pointer to the value of the list element
DLLEXPORT AbstractQoreNode * | getReferencedValue () const
| returns the current value with an incremented reference count
DLLEXPORT bool | first () const
| returns true when the iterator is pointing to the first element in the list
DLLEXPORT bool | last () const
| returns true when the iterator is pointing to the last element in the list
DLLLOCAL qore_size_t | index () const
| returns the current iterator position in the list or -1 if not pointing at a valid element
DLLLOCAL qore_size_t | max () const
| returns the number of elements in the list
DLLLOCAL const QoreListNode * | getList () const
| returns the list
DLLLOCAL bool | empty () const
| returns true if the list is empty
DLLLOCAL bool | valid () const
| returns true if the iterator is pointing to a valid element
DLLEXPORT void | reset ()
| resets the iterator to its initial state

## Detailed Description

For use on the stack only: iterates through elements of a const QoreListNode.

// iterate forward through the list
ConstListIterator li(l);
while (li.next()) {
QoreStringValueHelper str(li.getValue());
printf("%d: '%s'\n", li.index(), str->getBuffer());
}
// iterate backwards through the list
ConstListIterator li(l);
while (li.prev()) {
QoreStringValueHelper str(li.getValue());
printf("%d: '%s'\n", li.index(), str->getBuffer());
}

See Also
  ListIterator

## Constructor & Destructor Documentation

DLLEXPORT ConstListIterator::ConstListIterator | ( | const QoreListNode * | lst,
|  | qore_size_t | n_pos = `-1`
| ) |  |

initializes the iterator to the position given or, if omitted, just before the first element

Parameters

  lst | the list to iterate
  n_pos | the starting position (-1 means just before the first element so that the initial call to next() or prev() will put the iterator on the first element)

DLLEXPORT ConstListIterator::ConstListIterator | ( | const QoreListNode & | lst,
|  | qore_size_t | n_pos = `-1`
| ) |  |

initializes the iterator to the position given or, if omitted, just before the first element

Parameters

  lst | the list to iterate
  n_pos | the starting position (-1 means just before the first element so that the initial call to next() or prev() will put the iterator on the first element)

## Member Function Documentation

DLLEXPORT bool ConstListIterator::next | ( |  | ) |

moves the iterator to the next element, returns true if the iterator is pointing to an element of the list

if the iterator is on the last element, it moves to an invalid position before the first element and returns false note that a subsequent call to next() after it returns false will move the iterator to the first element again (assuming there is at least one element in the list)

Returns
  returns true if the iterator has been moved to point to a valid element of the list, false if there are no more elements to iterate

DLLEXPORT bool ConstListIterator::prev | ( |  | ) |

moves the iterator to the previous element, returns true if the iterator is pointing to an element of the list

if the iterator is on the first element, it moves to an invalid position before the first element and returns false note that a subsequent call to prev() after it returns false will move the iterator to the last element again (assuming there is at least one element in the list)

Returns
  returns true if the iterator has been moved to point to a valid element of the list, false if there are no more elements to iterate

Note
  after this function returns false, do not use the iterator until it points to a valid element, otherwise a crash will result

DLLEXPORT int ConstListIterator::set | ( | qore_size_t | n_pos | ) |

sets the iterator to a specific position in the list

In the case an invalid position is given (element not present in the list), the iterator will not be pointing to a valid element in the list

Parameters

  n_pos | the position in the list to set (first element is position 0)

Returns
  0 for OK, -1 for invalid position

Note
  if this function returns -1, do not use the iterator until it points to a valid element, otherwise a crash will result

The documentation for this class was generated from the following file:

- include/qore/QoreListNode.h (5431)