Package io.deephaven.client.impl
Class BarrageSubscriptionImpl
java.lang.Object
io.deephaven.util.referencecounting.ReferenceCounted
io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
io.deephaven.engine.liveness.ReferenceCountedLivenessNode
io.deephaven.client.impl.BarrageSubscriptionImpl
- All Implemented Interfaces:
LogOutputAppendable
,BarrageSubscription
,LivenessManager
,LivenessNode
,LivenessReferent
public class BarrageSubscriptionImpl
extends ReferenceCountedLivenessNode
implements BarrageSubscription
This class is an intermediary helper class that uses a
DoExchange
to populate a BarrageTable
using
subscription data from a remote server, propagating updates if the request is a subscription.
Users may call entireTable()
or partialTable(io.deephaven.engine.rowset.RowSet, java.util.BitSet)
to initiate the gRPC call to the server. These methods
return a Future<BarrageTable>
to the user.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.client.impl.BarrageSubscription
BarrageSubscription.Factory
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
destroy()
Attempt to release (destructively when necessary) resources held by this object.Request a full subscription of the data and populate aTable
with the incrementally updating data that is received.static io.grpc.MethodDescriptor<org.apache.arrow.flight.impl.Flight.FlightData,
BarrageMessage> getClientDoExchangeDescriptor
(BarrageSubscriptionOptions options, ChunkType[] columnChunkTypes, Class<?>[] columnTypes, Class<?>[] componentTypes, StreamReader streamReader) Fetch the client side descriptor for a specific table schema.static ByteBuffer
makeRequestInternal
(@Nullable RowSet viewport, @Nullable BitSet columns, boolean reverseViewport, @Nullable BarrageSubscriptionOptions options, byte @NotNull [] ticketId) partialTable
(RowSet viewport, BitSet columns) Request a partial subscription of the data limited by viewport or column set and populate aTable
with the data that is received.partialTable
(RowSet viewport, BitSet columns, boolean reverseViewport) Request a partial subscription of the data limited by viewport or column set and populate aTable
with the data that is received.Request a full snapshot of the data and populate aTable
with the incrementally updating data that is received.snapshotPartialTable
(RowSet viewport, BitSet columns) Request a partial snapshot of the data limited by viewport or column set and populate aTable
with the data that is received.snapshotPartialTable
(RowSet viewport, BitSet columns, boolean reverseViewport) Request a partial snapshot of the data limited by viewport or column set and populate aTable
with the data that is received.Methods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanage
Methods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
dropReference, tryRetainReference
Methods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, toString, tryDecrementReferenceCount, tryIncrementReferenceCount
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage
Methods inherited from interface io.deephaven.engine.liveness.LivenessNode
unmanage, unmanage
Methods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, retainReference, tryRetainReference
-
Method Details
-
entireTable
Description copied from interface:BarrageSubscription
Request a full subscription of the data and populate aTable
with the incrementally updating data that is received. The returned future will block until all rows for the subscribed table are available.- Specified by:
entireTable
in interfaceBarrageSubscription
- Returns:
- a
Future
that will be populated with the resultTable
-
partialTable
Description copied from interface:BarrageSubscription
Request a partial subscription of the data limited by viewport or column set and populate aTable
with the data that is received. The returned future will block until the subscribed table viewport is satisfied.- Specified by:
partialTable
in interfaceBarrageSubscription
- Parameters:
viewport
- the position-space viewport to use for the subscriptioncolumns
- the columns to include in the subscription- Returns:
- a
Future
that will be populated with the resultTable
-
snapshotEntireTable
Description copied from interface:BarrageSubscription
Request a full snapshot of the data and populate aTable
with the incrementally updating data that is received. The returned future will block until all rows for the snapshot table are available.- Specified by:
snapshotEntireTable
in interfaceBarrageSubscription
- Returns:
- a
Future
that will be populated with the resultTable
-
snapshotPartialTable
Description copied from interface:BarrageSubscription
Request a partial snapshot of the data limited by viewport or column set and populate aTable
with the data that is received. The returned future will block until the snapshot table viewport is satisfied.- Specified by:
snapshotPartialTable
in interfaceBarrageSubscription
- Parameters:
viewport
- the position-space viewport to use for the subscriptioncolumns
- the columns to include in the subscription- Returns:
- a
Future
that will be populated with the resultTable
-
snapshotPartialTable
Description copied from interface:BarrageSubscription
Request a partial snapshot of the data limited by viewport or column set and populate aTable
with the data that is received. Allows the viewport to be reversed. The returned future will block until the snapshot table viewport is satisfied.- Specified by:
snapshotPartialTable
in interfaceBarrageSubscription
- Parameters:
viewport
- the position-space viewport to use for the subscriptioncolumns
- the columns to include in the subscriptionreverseViewport
- Whether to treatposRowSet
as offsets fromLongSizedDataStructure.size()
rather than0
- Returns:
- a
Future
that will be populated with the resultTable
-
partialTable
Description copied from interface:BarrageSubscription
Request a partial subscription of the data limited by viewport or column set and populate aTable
with the data that is received. Allows the viewport to be reversed. The returned future will block until the subscribed table viewport is satisfied.- Specified by:
partialTable
in interfaceBarrageSubscription
- Parameters:
viewport
- the position-space viewport to use for the subscriptioncolumns
- the columns to include in the subscriptionreverseViewport
- Whether to treatposRowSet
as offsets fromLongSizedDataStructure.size()
rather than0
- Returns:
- a
Future
that will be populated with the resultTable
-
destroy
protected void destroy()Description copied from class:ReferenceCountedLivenessReferent
Attempt to release (destructively when necessary) resources held by this object. This may render the object unusable for subsequent operations. Implementations should be sure to call super.destroy().This is intended to only ever be used as a side effect of decreasing the reference count to 0.
- Overrides:
destroy
in classReferenceCountedLivenessReferent
-
append
- Specified by:
append
in interfaceLogOutputAppendable
- Overrides:
append
in classReferenceCounted
-
makeRequestInternal
@VisibleForTesting public static ByteBuffer makeRequestInternal(@Nullable @Nullable RowSet viewport, @Nullable @Nullable BitSet columns, boolean reverseViewport, @Nullable @Nullable BarrageSubscriptionOptions options, byte @NotNull [] ticketId) -
getClientDoExchangeDescriptor
public static io.grpc.MethodDescriptor<org.apache.arrow.flight.impl.Flight.FlightData,BarrageMessage> getClientDoExchangeDescriptor(BarrageSubscriptionOptions options, ChunkType[] columnChunkTypes, Class<?>[] columnTypes, Class<?>[] componentTypes, StreamReader streamReader) Fetch the client side descriptor for a specific table schema.- Parameters:
options
- the set of options that last across the entire life of the subscriptioncolumnChunkTypes
- the chunk types per columncolumnTypes
- the class type per columncomponentTypes
- the component class type per columnstreamReader
- the stream reader - intended to be thread safe and re-usable- Returns:
- the client side method descriptor
-