public class EmptyAsynchronousIterator<E> extends EmptyCloseableIterator<E> implements IAsynchronousIterator<E>
IAsynchronousIterator
.Constructor and Description |
---|
EmptyAsynchronousIterator() |
Modifier and Type | Method and Description |
---|---|
boolean |
hasNext(long timeout,
TimeUnit unit)
Return
true iff there is at least one element that can be
visited. |
boolean |
isExhausted()
Return
true iff this iterator will not visit any more
elements (non-blocking). |
E |
next(long timeout,
TimeUnit unit)
Waits up to the timeout to return the next element.
|
close, hasNext, next, remove
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
close
public boolean isExhausted()
IAsynchronousIterator
true
iff this iterator will not visit any more
elements (non-blocking).isExhausted
in interface IAsynchronousIterator<E>
true
iff the iterator is known to be exhausted
without blocking. A false
return does NOT imply
that the iterator will visit more elements, only that it MIGHT
visit more elements.public boolean hasNext(long timeout, TimeUnit unit) throws InterruptedException
IAsynchronousIterator
true
iff there is at least one element that can be
visited. If the buffer is empty then this will block until: (a) an
element appears in the buffer; (b) the buffer is
BlockingBuffer.close()
ed; or (c) the timeout expires.
Note that a false
return DOES NOT signify that the iterator
is exhausted. However, if you specify an infinite timeout using
Long.MAX_VALUE
TimeUnit.SECONDS
then you MAY safely
interpret a false
return as an indication that the iterator
is exhausted.
hasNext
in interface IAsynchronousIterator<E>
timeout
- The length of time that the method may block awaiting an
element to appear.unit
- The units in which the timeout is expressed.true
iff there is an element available.InterruptedException
- if the current thread is interrupted while waiting another
element.public E next(long timeout, TimeUnit unit) throws InterruptedException
IAsynchronousIterator
next
in interface IAsynchronousIterator<E>
timeout
- The timeout (overrides the chunkTimeout specified to
the BlockingBuffer
ctor).unit
- The unit in which the timeout is expressed.null
iff the timeout was exceeded
before IAsynchronousIterator.hasNext(long, TimeUnit)
returned
true
.
In order to have a definitive indication that the iterator is
exhausted you need to invoke Iterator.hasNext()
without a timeout
(blocking) or IAsynchronousIterator.isExhausted()
(non-blocking).
InterruptedException
- if the current thread is interrupted while waiting for
another element.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.