public abstract class AbstractDataList<DATATYPE extends Data> extends com.yahoo.component.provider.ListenableFreezableClass implements DataList<DATATYPE>, Streamed, Ordered
Modifier and Type | Class and Description |
---|---|
static class |
AbstractDataList.DrainOnGetFuture<DATATYPE extends Data> |
Modifier and Type | Field and Description |
---|---|
private com.google.common.util.concurrent.ListenableFuture<DataList<DATATYPE>> |
completedFuture |
private IncomingData<DATATYPE> |
incomingData
The recipient of incoming data to this.
|
private boolean |
ordered |
private Request |
request
The request which caused this to be created
|
private boolean |
streamed |
Modifier | Constructor and Description |
---|---|
protected |
AbstractDataList(Request request)
Creates a simple data list which does not allow late incoming data
|
protected |
AbstractDataList(Request request,
IncomingData<DATATYPE> incomingData)
Creates a simple data list which receives incoming data in the given instance
|
protected |
AbstractDataList(Request request,
IncomingData<DATATYPE> incomingData,
boolean ordered,
boolean streamed)
Creates a simple data list which receives incoming data in the given instance
|
Modifier and Type | Method and Description |
---|---|
com.google.common.util.concurrent.ListenableFuture<DataList<DATATYPE>> |
complete()
Returns a future in which all incoming data in this has become available.
|
IncomingData<DATATYPE> |
incoming()
Returns the holder of incoming data to this.
|
boolean |
isOrdered()
Returns false if the data in this list can be returned in any order.
|
boolean |
isStreamed()
Returns false if the data in this list can not be returned until it is completed.
|
Request |
request()
Returns the request which created this data
|
String |
toString() |
addFreezeListener, clone, freeze
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
add, addDataListener, asList, get
private final boolean ordered
private final boolean streamed
private final Request request
private final IncomingData<DATATYPE extends Data> incomingData
protected AbstractDataList(Request request)
request
- the request which created this data listprotected AbstractDataList(Request request, IncomingData<DATATYPE> incomingData)
request
- the request which created this data list, never nullincomingData
- the recipient of incoming data to this list, never nullprotected AbstractDataList(Request request, IncomingData<DATATYPE> incomingData, boolean ordered, boolean streamed)
request
- the request which created this data list, never nullincomingData
- the recipient of incoming data to this list, never nullpublic Request request()
public IncomingData<DATATYPE> incoming()
public com.google.common.util.concurrent.ListenableFuture<DataList<DATATYPE>> complete()
DataList
DataList.get(int)
on this future will block (if necessary) until all incoming data has arrived,
transfer that data from the incoming buffer into this list and invoke any listeners on this event
on the calling thread.
Note that if no thread calls completed().get(), this future will never occur.
Any data list consumer who wishes to make sure it sees the complete data for this list
must call dataList.complete().get()
before consuming this list.
If a guaranteed non-blocking call to this method is desired, register a listener on the future where all
data is available for draining (that is, on dataList.incoming().completed()
)
and resume by calling this method from the listener.
Making this call on a list which does not support future data always returns immediately and causes no memory synchronization cost.
public boolean isOrdered()
Ordered
public boolean isStreamed()
Streamed
isStreamed
in interface Streamed
Copyright © 2018. All rights reserved.