Package io.deephaven.enterprise.remote
Interface SubscriptionOptions
@Immutable
public interface SubscriptionOptions
Implementations of this interface provide parameters for a
ConnectionAwareRemoteTable to maintain a
subscription to a remote table.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceImplementations of this interface can be used to construct a newSubscriptionOptions. -
Method Summary
Modifier and TypeMethodDescriptionstatic @NotNull SubscriptionOptions.Builderbuilder()Construct a newSubscriptionOptions.Builderto createSubscriptionOptions.default voidcheck()Ensure the state is valid.default booleanIf the result table should clear its rows when a disconnect occurs.default @Nullable Filterfilter()filters()Get the list of filters to be applied in conjunction withfilter()before subscribing to the table.static intGet the maximum inbound message size.Get the columns to include from the upstream table.default longThe maximum number of retries to attempt within thewindow.default longThe width of the window in milliseconds in which to attempt to reconnect.default booleanWhether to block the caller inRemoteTableBuilder.subscribe()until the complete initial table snapshot has been received.Timeout to wait for the initial snapshot whenwaitForData()istrue.
-
Method Details
-
getMaxInboundMessageSize
static int getMaxInboundMessageSize()Get the maximum inbound message size.- Returns:
- the maximum inbound message size
-
clearOnDisconnect
@Default default boolean clearOnDisconnect()If the result table should clear its rows when a disconnect occurs. Defaults totrue.- Returns:
- if the result table should clear rows on disconnection/
-
retryWindowMillis
@Default default long retryWindowMillis()The width of the window in milliseconds in which to attempt to reconnect. Defaults to 60 seconds, unless changed via theConnectionAwareRemoteTableParams.retryWindowMillisproperty.- Returns:
- the reconnection window in milliseconds
-
maxRetriesWithinWindow
@Default default long maxRetriesWithinWindow()The maximum number of retries to attempt within thewindow. Defaults to 5, unless changed via thaConnectionAwareRemoteTableParams.maxRetriesproperty.- Returns:
- the maximum allowed retries in the
window
-
includedColumns
Get the columns to include from the upstream table. Defaults to all (null)- Returns:
- the columns to include, or null for all of them.
-
filters
Get the list of filters to be applied in conjunction withfilter()before subscribing to the table.- Returns:
- the list of filters to apply
-
filter
- Returns:
- the list of filters to apply
-
waitForData
@Default default boolean waitForData()Whether to block the caller inRemoteTableBuilder.subscribe()until the complete initial table snapshot has been received. Defaults totrue.When
false, the caller must provide aTableDefinitionviaRemoteTableBuilder.tableDefinition(TableDefinition)because the schema cannot be discovered without waiting for the upstream query. AnIllegalArgumentExceptionis thrown immediately if no definition is set.- Returns:
- whether to wait for the initial snapshot before returning
-
waitTimeout
Timeout to wait for the initial snapshot whenwaitForData()istrue. An emptyOptionalmeans wait indefinitely. Defaults toOptional.empty().- Returns:
- the wait timeout, or
Optional.empty()for no timeout
-
builder
Construct a newSubscriptionOptions.Builderto createSubscriptionOptions.- Returns:
- a new builder.
-
check
Ensure the state is valid.
-