org.eigenbase.runtime
Class TimeoutQueueTupleIterTest.TickIterator
java.lang.Object
org.eigenbase.runtime.AbstractTupleIter
org.eigenbase.runtime.TimeoutQueueTupleIterTest.TickIterator
- All Implemented Interfaces:
- TupleIter, ClosableAllocation
- Enclosing class:
- TimeoutQueueTupleIterTest
private static class TimeoutQueueTupleIterTest.TickIterator
- extends AbstractTupleIter
Iterator which returns an element from an array on a regular basis.
Every clock tick until the array is exhausted, Iterator.hasNext() returns true, then the following clock tick, Iterator.next() returns an object. If you call a method too early, the
method waits until the appropriate time.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
verbose
private final boolean verbose
startTime
private final long startTime
current
private int current
values
private final Object[] values
TimeoutQueueTupleIterTest.TickIterator
TimeoutQueueTupleIterTest.TickIterator(Object[] values,
boolean verbose,
long startTime)
waitUntil
private void waitUntil(int tick)
fetchNext
public Object fetchNext()
- Description copied from interface:
TupleIter
- Returns the next element in the iteration. If there is no next value, it
returns a value from the
TupleIter.NoDataReason enumeration indicating why
no data was returned.
If this method returns TupleIter.NoDataReason.END_OF_DATA, no further
data will be returned by this iterator unless TupleIter.restart()
is called.
If this method returns TupleIter.NoDataReason.UNDERFLOW, no data is
currently available, but may be come available in the future. It is
possible for consecutive calls to return UNDERFLOW and then END_OF_DATA.
The object returned by this method may be re-used for each subsequent
call to fetchNext(). In other words, callers must either
make certain that the returned value is no longer needed or is copied
before any subsequent calls to fetchNext().
- Returns:
- the next element in the iteration, or an instance of
TupleIter.NoDataReason.
restart
public void restart()
- Description copied from interface:
TupleIter
- Restarts this iterator, so that a subsequent call to
TupleIter.fetchNext() returns the first element in the collection being
iterated.
- Specified by:
restart in interface TupleIter- Overrides:
restart in class AbstractTupleIter
closeAllocation
public void closeAllocation()
- Description copied from interface:
ClosableAllocation
- Closes this object.
demo
public static void demo()