Interface TableLocation
- All Superinterfaces:
LogOutputAppendable,NamedImplementation,TableLocationState
- All Known Implementing Classes:
AbstractTableLocation,NonexistentTableLocation,ParquetTableLocation
Building block for Deephaven "source" tables, with helper methods for discovering locations and their sizes. A
location allows access to columns, size, and possibly other metadata for a single partition that may be included in a
source table.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceListener interface for anything that wants to know about changes to a location. -
Field Summary
Fields inherited from interface io.deephaven.engine.table.impl.locations.TableLocationState
NULL_SIZE, NULL_TIME -
Method Summary
Modifier and TypeMethodDescriptiondefault LogOutput@NotNull ColumnLocationgetColumnLocation(@NotNull CharSequence name) @NotNull ImmutableTableLocationKeygetKey()@NotNull ImmutableTableKeyvoidrefresh()Initialize or run state information.voidsubscribe(@NotNull TableLocation.Listener listener) Subscribe to pushed location updates.booleanDoes this location support subscriptions? That is, can this location ever have ticking data?default StringFormat the table key without implementation specific bits.default StringOptional toString path with more implementation detail.default Stringvoidunsubscribe(@NotNull TableLocation.Listener listener) Unsubscribe from pushed location updates.Methods inherited from interface io.deephaven.util.type.NamedImplementation
getImplementationNameMethods inherited from interface io.deephaven.engine.table.impl.locations.TableLocationState
copyStateValuesTo, getLastModifiedTimeMillis, getRowSet, getSize, getStateLock
-
Method Details
-
getTableKey
- Returns:
- An
ImmutableTableKeyinstance for the enclosing table
-
getKey
- Returns:
- An
ImmutableTableLocationKeyinstance for this location
-
supportsSubscriptions
boolean supportsSubscriptions()Does this location support subscriptions? That is, can this location ever have ticking data?- Returns:
- True if this location supports subscriptions
-
subscribe
Subscribe to pushed location updates. Subscribing more than once with the same listener without an intervening unsubscribe is an error, and may result in undefined behavior.
This is a possibly asynchronous operation - listener will receive 1 or more handleUpdate callbacks, followed by 0 or 1 handleException callbacks during invocation and continuing after completion, on a thread determined by the implementation. Don't hold a lock that prevents notification delivery while subscribing!
This method only guarantees eventually consistent state. To force a state update, use run() after subscription completes.
- Parameters:
listener- A listener
-
unsubscribe
Unsubscribe from pushed location updates.- Parameters:
listener- The listener to forget about
-
refresh
void refresh()Initialize or run state information. -
getColumnLocation
- Parameters:
name- The column name- Returns:
- The ColumnLocation for the defined column under this table location
-
append
- Specified by:
appendin interfaceLogOutputAppendable
-
toStringHelper
-
toGenericString
Format the table key without implementation specific bits.- Returns:
- a formatted string
-
toStringDetailed
Optional toString path with more implementation detail.- Returns:
- detailed conversion to string
-