Class BarrageMessageProducer
- All Implemented Interfaces:
io.deephaven.base.log.LogOutputAppendable,io.deephaven.engine.liveness.LivenessManager,io.deephaven.engine.liveness.LivenessNode,io.deephaven.engine.liveness.LivenessReferent,io.deephaven.engine.table.impl.NotificationStepReceiver,io.deephaven.engine.updategraph.DynamicNode,Serializable
When a client subscribes initially, a snapshot of the table is sent. The snapshot is obtained using either get() or getPrev() based on the state of the LogicalClock. On each subsequent update, the client is given the deltas between the last update propagation and the next.
When a client changes its subscription it will be sent a snapshot of only the data that the server believes it needs assuming that the client has been respecting the existing subscription. Practically, this means that the server may omit some data if the client's viewport change overlaps the currently recognized viewport.
It is possible to use this replication source to create subscriptions that propagate changes from one UGP to another inside the same JVM.
The client-side counterpart of this is the BarrageMessageReader.
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from interface io.deephaven.engine.table.impl.NotificationStepReceiver
NULL_NOTIFICATION_STEP -
Constructor Summary
ConstructorsConstructorDescriptionBarrageMessageProducer(Scheduler scheduler, SessionService.ErrorTransformer errorTransformer, io.deephaven.extensions.barrage.BarrageMessageWriter.Factory streamGeneratorFactory, io.deephaven.engine.table.impl.BaseTable<?> parent, long updateIntervalMs, Runnable onGetSnapshot) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddParentReference(Object parent) voidaddSubscription(io.grpc.stub.StreamObserver<io.deephaven.extensions.barrage.BarrageMessageWriter.MessageView> listener, io.deephaven.extensions.barrage.BarrageSubscriptionOptions options, @Nullable BitSet columnsToSubscribe, @Nullable io.deephaven.engine.rowset.RowSet initialViewport, boolean reverseViewport) Add a subscription to this BarrageMessageProducer.io.deephaven.engine.table.impl.InstrumentedTableUpdateListenerprotected voiddestroy()io.deephaven.engine.rowset.RowSetio.deephaven.engine.table.TableDefinitionbooleanvoidremoveSubscription(io.grpc.stub.StreamObserver<io.deephaven.extensions.barrage.BarrageMessageWriter.MessageView> listener) voidsetLastNotificationStep(long lastNotificationStep) voidsetOnGetSnapshot(Runnable onGetSnapshot, boolean isPreSnap) booleansetRefreshing(boolean refreshing) booleanupdateSubscription(io.grpc.stub.StreamObserver<io.deephaven.extensions.barrage.BarrageMessageWriter.MessageView> listener, @Nullable io.deephaven.engine.rowset.RowSet newViewport, @Nullable BitSet columnsToSubscribe) booleanupdateSubscription(io.grpc.stub.StreamObserver<io.deephaven.extensions.barrage.BarrageMessageWriter.MessageView> listener, @Nullable io.deephaven.engine.rowset.RowSet newViewport, @Nullable BitSet columnsToSubscribe, boolean newReverseViewport) Methods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScopeMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanageMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
dropReference, tryRetainReferenceMethods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
append, decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, toString, tryDecrementReferenceCount, tryIncrementReferenceCountMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, unmanage, unmanageMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, retainReference, tryRetainReferenceMethods inherited from interface io.deephaven.engine.table.impl.NotificationStepReceiver
initializeLastNotificationStep
-
Field Details
-
SUBSCRIPTION_GROWTH_ENABLED
public static final boolean SUBSCRIPTION_GROWTH_ENABLED
-
-
Constructor Details
-
BarrageMessageProducer
public BarrageMessageProducer(Scheduler scheduler, SessionService.ErrorTransformer errorTransformer, io.deephaven.extensions.barrage.BarrageMessageWriter.Factory streamGeneratorFactory, io.deephaven.engine.table.impl.BaseTable<?> parent, long updateIntervalMs, Runnable onGetSnapshot)
-
-
Method Details
-
getRowSet
public io.deephaven.engine.rowset.RowSet getRowSet() -
getTableDefinition
public io.deephaven.engine.table.TableDefinition getTableDefinition() -
setOnGetSnapshot
-
addSubscription
public void addSubscription(io.grpc.stub.StreamObserver<io.deephaven.extensions.barrage.BarrageMessageWriter.MessageView> listener, io.deephaven.extensions.barrage.BarrageSubscriptionOptions options, @Nullable @Nullable BitSet columnsToSubscribe, @Nullable @Nullable io.deephaven.engine.rowset.RowSet initialViewport, boolean reverseViewport) Add a subscription to this BarrageMessageProducer.- Parameters:
listener- The listener for this subscriptionoptions- Thesubscription optionscolumnsToSubscribe- The initial columns to subscribe toinitialViewport- Initial viewport, to be owned by the subscription
-
updateSubscription
public boolean updateSubscription(io.grpc.stub.StreamObserver<io.deephaven.extensions.barrage.BarrageMessageWriter.MessageView> listener, @Nullable @Nullable io.deephaven.engine.rowset.RowSet newViewport, @Nullable @Nullable BitSet columnsToSubscribe) -
updateSubscription
public boolean updateSubscription(io.grpc.stub.StreamObserver<io.deephaven.extensions.barrage.BarrageMessageWriter.MessageView> listener, @Nullable @Nullable io.deephaven.engine.rowset.RowSet newViewport, @Nullable @Nullable BitSet columnsToSubscribe, boolean newReverseViewport) -
removeSubscription
public void removeSubscription(io.grpc.stub.StreamObserver<io.deephaven.extensions.barrage.BarrageMessageWriter.MessageView> listener) -
constructListener
public io.deephaven.engine.table.impl.InstrumentedTableUpdateListener constructListener() -
destroy
@OverridingMethodsMustInvokeSuper protected void destroy()- Overrides:
destroyin classio.deephaven.engine.liveness.ReferenceCountedLivenessReferent
-
isRefreshing
public boolean isRefreshing()- Specified by:
isRefreshingin interfaceio.deephaven.engine.updategraph.DynamicNode
-
setRefreshing
public boolean setRefreshing(boolean refreshing) - Specified by:
setRefreshingin interfaceio.deephaven.engine.updategraph.DynamicNode
-
addParentReference
- Specified by:
addParentReferencein interfaceio.deephaven.engine.updategraph.DynamicNode
-
setLastNotificationStep
public void setLastNotificationStep(long lastNotificationStep) - Specified by:
setLastNotificationStepin interfaceio.deephaven.engine.table.impl.NotificationStepReceiver
-