Qore Programming Language Reference Manual  1.8.0
Qore::SingleValueIterator Class Reference

This class defines a simple iterator to be used to iterate single values (or complex objects where no iterator has been implemented yet) More...

Inheritance diagram for Qore::SingleValueIterator:

Public Member Methods

 constructor (auto v)
 creates the single value iterator with the value passed as an argument More...
 
 copy ()
 Creates a copy of the SingleValueIterator object, iterating the same object as the original and in the same position. More...
 
auto getValue ()
 returns the current value or throws an INVALID-ITERATOR exception if the iterator is invalid More...
 
bool next ()
 This method returns True and False alternately unless it has no value to iterate, in which case it returns only False. More...
 
 reset ()
 Reset the iterator instance to its initial state. More...
 
bool valid ()
 returns True if the iterator is currently pointing at a valid element, False if not More...
 

Detailed Description

This class defines a simple iterator to be used to iterate single values (or complex objects where no iterator has been implemented yet)

Since
Qore 0.8.6
Example: SingleValueIterator basic usage
auto val = 1;
SingleValueIterator it(val);
while (it.next()) {
printf("iter: %n\n", it.getValue());
}
iter: 1
string printf(string fmt,...)
Outputs the string passed to standard output, using the first argument as a format string; does not e...

Remember that input value is taken as a single token so result of the code above for a list as an input argument will be like this:

auto val = (1, 2, 3);
iter: list: (1, 2, 3)

Member Function Documentation

◆ constructor()

Qore::SingleValueIterator::constructor ( auto  v)

creates the single value iterator with the value passed as an argument

Parameters
vthe value to iterate
Example:
SingleValueIterator i(v);

◆ copy()

Qore::SingleValueIterator::copy ( )

Creates a copy of the SingleValueIterator object, iterating the same object as the original and in the same position.

Example:
SingleValueIterator ni = i.copy();

◆ getValue()

auto Qore::SingleValueIterator::getValue ( )
virtual

returns the current value or throws an INVALID-ITERATOR exception if the iterator is invalid

Returns
the current value or throws an INVALID-ITERATOR exception if the iterator is invalid
Code Flags:
RET_VALUE_ONLY
Example:
while (i.next()) {
printf("+ %y\n", i.getValue());
}
Exceptions
INVALID-ITERATORthe iterator is not pointing at a valid element

Implements Qore::AbstractIterator.

◆ next()

bool Qore::SingleValueIterator::next ( )
virtual

This method returns True and False alternately unless it has no value to iterate, in which case it returns only False.

The iterator object should not be used after this method returns False

Returns
True and False alternately unless it has no value to iterate, in which case it returns only False
Example:
while (i.next()) {
printf("value: %y\n", i.getValue());
}
Exceptions
ITERATOR-THREAD-ERRORthis exception is thrown if this method is called from any thread other than the thread that created the object

Implements Qore::AbstractIterator.

◆ reset()

Qore::SingleValueIterator::reset ( )

Reset the iterator instance to its initial state.

Reset the iterator instance to its initial state

Example
i.reset();
Exceptions
ITERATOR-THREAD-ERRORthis exception is thrown if this method is called from any thread other than the thread that created the object

◆ valid()

bool Qore::SingleValueIterator::valid ( )
virtual

returns True if the iterator is currently pointing at a valid element, False if not

Returns
True if the iterator is currently pointing at a valid element, False if not
Code Flags:
CONSTANT
Example:
if (i.valid())
printf("current value: %y\n", i.getValue());

Implements Qore::AbstractIterator.