E
- item typepublic interface ReadResultSet<E> extends Iterable<E>
Ringbuffer.readManyAsync(long, int, int, com.hazelcast.core.IFunction)
operation.
Important:
If an item is retrieved multiple times from the result set, a new
instance is returned for every invocation. This is done to prevent
unexpected sharing if the ICompletableFuture
is shared between multiple threads.
Modifier and Type | Field and Description |
---|---|
static int |
SEQUENCE_UNAVAILABLE
Value returned from methods returning a sequence number when the
information is not available (e.g.
|
Modifier and Type | Method and Description |
---|---|
E |
get(int index)
Gets the item at the given index.
|
long |
getNextSequenceToReadFrom()
Returns the sequence of the item following the last read item.
|
long |
getSequence(int index)
Return the sequence number for the item at the given index.
|
int |
readCount()
Returns the number of items that have been read before filtering.
|
int |
size()
Return the result set size.
|
forEach, iterator, spliterator
static final int SEQUENCE_UNAVAILABLE
int readCount()
If no filter is set, then the readCount
will be equal to
size()
.
But if a filter is applied, it could be that items are read, but are
filtered out. So if you are trying to make another read based on the
ReadResultSet
then you should increment the sequence by
readCount
and not by size()
.
Otherwise you will be re-reading the same filtered messages.
E get(int index)
index
- the indexIllegalArgumentException
- if index out of bounds.long getSequence(int index)
index
- the indexIllegalArgumentException
- if index out of bounds.Cluster.getClusterVersion()
int size()
readCount()
.long getNextSequenceToReadFrom()
readCount()
. In cases when the
reader tolerates lost items, this is not the case.
For instance, if the reader requests an item with a stale sequence (one
which has already been overwritten), the read will jump to the oldest
sequence and read from there.
Similarly, if the reader requests an item in the future (e.g. because
the partition was lost and the reader was unaware of this), the read
method will jump back to the newest available sequence.
Because of these jumps and only in the case when the reader is loss
tolerant, the next sequence must be retrieved using this method.
A return value of -1 means that the
information is not available.Copyright © 2022 Hazelcast, Inc.. All Rights Reserved.