Class PythonTableDataService.TableLocationImpl
- All Implemented Interfaces:
LogOutputAppendable,DelegatingLivenessReferent,LivenessReferent,TableLocation,TableLocationState,PushdownFilterMatcher,NamedImplementation
- Enclosing class:
- PythonTableDataService
TableLocation implementation for TableService.-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.locations.TableLocation
TableLocation.Listener -
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.locations.impl.SubscriptionAggregator
subscriptionsFields inherited from interface io.deephaven.engine.table.impl.locations.TableLocationState
NULL_SIZE, NULL_TIME -
Method Summary
Modifier and TypeMethodDescriptionprotected voidRefresh and activate update pushing from the implementing class.protected voidDeactivate pushed updates from the implementing class.Get a list of the columns by which this location is indexedGet a name for the implementing class.@NotNull List<SortColumn>Get an ordered list of columns this location is sorted by.booleanhasDataIndex(@NotNull String... columns) Check if this TableLocation has a data index for the specified columns.@Nullable BasicDataIndexloadDataIndex(@NotNull String... columns) Load the data index from the location implementation.protected @NotNull ColumnLocationmakeColumnLocation(@NotNull String name) protected <T> booleanmatchSubscriptionToken(T token) Verify that a notification pertains to a currently-active subscription.voidrefresh()Initialize or run state information.Methods inherited from class io.deephaven.engine.table.impl.locations.impl.AbstractTableLocation
asLivenessReferent, clearColumnLocations, deliverInitialSnapshot, destroy, estimatePushdownFilterCost, getColumnLocation, getDataIndex, getKey, getLastModifiedTimeMillis, getRowSet, getSize, getStateLock, getTableKey, handleUpdate, handleUpdate, handleUpdateInternal, handleUpdateInternal, hasAnyCachedDataIndex, hasCachedDataIndex, initializeState, makePushdownFilterContext, pushdownFilter, toStringMethods inherited from class io.deephaven.engine.table.impl.locations.impl.SubscriptionAggregator
activationFailed, activationSuccessful, checkHasSubscribers, postActivationHook, subscribe, supportsSubscriptions, unsubscribeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.liveness.DelegatingLivenessReferent
dropReference, getWeakReference, tryRetainReferenceMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
getReferentDescription, retainReferenceMethods inherited from interface io.deephaven.engine.table.impl.locations.TableLocation
append, subscribe, supportsSubscriptions, toGenericString, toStringDetailed, toStringHelper, unsubscribeMethods inherited from interface io.deephaven.engine.table.impl.locations.TableLocationState
copyStateValuesTo
-
Method Details
-
makeColumnLocation
- Specified by:
makeColumnLocationin classAbstractTableLocation
-
refresh
public void refresh()Description copied from interface:TableLocationInitialize or run state information. -
getSortedColumns
Description copied from interface:TableLocationGet an ordered list of columns this location is sorted by.- Returns:
- A non-null ordered list of
SortColumns
-
getDataIndexColumns
Description copied from interface:TableLocationGet a list of the columns by which this location is indexed- Returns:
- A non-null list of
String[]arrays containing the key column names for each existing index
-
hasDataIndex
Description copied from interface:TableLocationCheck if this TableLocation has a data index for the specified columns.- Parameters:
columns- The set of columns to check for- Returns:
- Whether the TableLocation has an index for the specified columns
-
loadDataIndex
Description copied from class:AbstractTableLocationLoad the data index from the location implementation. Implementations of this method should not perform any result caching.- Specified by:
loadDataIndexin classAbstractTableLocation- Parameters:
columns- The columns to load an index for- Returns:
- The data index, or
nullif none exists
-
activateUnderlyingDataSource
protected void activateUnderlyingDataSource()Description copied from class:SubscriptionAggregatorRefresh and activate update pushing from the implementing class.
If the implementation will deliver notifications in a different thread than the one that calls this method, then this method must be asynchronous - that is, it must not block pending delivery of results. This requirement holds even if that other thread has nothing to do with the initial activation request!
Listeners should guard against duplicate notifications, especially if the implementation delivers synchronous notifications.
The implementation should call activationSuccessful() when done activating and delivering initial run results, unless activationFailed() was called instead.
Must be called under the subscription lock.
- Overrides:
activateUnderlyingDataSourcein classSubscriptionAggregator<TableLocation.Listener>
-
deactivateUnderlyingDataSource
protected void deactivateUnderlyingDataSource()Description copied from class:SubscriptionAggregatorDeactivate pushed updates from the implementing class. Must be called under the subscription lock.- Overrides:
deactivateUnderlyingDataSourcein classSubscriptionAggregator<TableLocation.Listener>
-
matchSubscriptionToken
protected <T> boolean matchSubscriptionToken(T token) Description copied from class:SubscriptionAggregatorVerify that a notification pertains to a currently-active subscription. Must be called under the subscription lock.- Overrides:
matchSubscriptionTokenin classSubscriptionAggregator<TableLocation.Listener>- Parameters:
token- A subscription-related object that the subclass can use to match a notification- Returns:
- True iff notification delivery should proceed
-
getImplementationName
Description copied from interface:NamedImplementationGet a name for the implementing class. Useful for abstract classes that implement
LogOutputAppendableor overridetoString.The default implementation is correct, but not suitable for high-frequency usage.
- Returns:
- A name for the implementing class
-