Interface TableLogger
- All Superinterfaces:
com.illumon.intradaylogger.IntradayLogger
,TableLoggerBase
- All Known Implementing Classes:
ProcessTelemetryFormat1Logger
public interface TableLogger extends TableLoggerBase, com.illumon.intradaylogger.IntradayLogger
An interface that logs snapshots and optionally, updates from a source table to another Deephaven table.
Implementations of this interface must provide implementations of the TableLoggerBase.Handle interface
with the logger context as well as the logTableHandle and logTableHandlePrev methods to log the current and
previous values of a particular row index, respectively.
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
TableLogger.NoPrevColumnSource<T>
A ColumnSource that always returns null-equivalent for previous values.Nested classes/interfaces inherited from interface com.illumon.intradaylogger.IntradayLogger
com.illumon.intradaylogger.IntradayLogger.TableWriterFactory, com.illumon.intradaylogger.IntradayLogger.TableWriterFactoryImpl
Nested classes/interfaces inherited from interface com.illumon.iris.db.tables.dataimport.TableLoggerBase
TableLoggerBase.Flags, TableLoggerBase.Handle, TableLoggerBase.Operation
-
Field Summary
Fields inherited from interface com.illumon.intradaylogger.IntradayLogger
DEFAULT_INTRADAY_LOGGER_FLAGS
Fields inherited from interface com.illumon.iris.db.tables.dataimport.TableLoggerBase
DEFAULT_TABLELOGGER_FLAGS
-
Method Summary
Modifier and Type Method Description default TableWriter
getWriter()
Return the table writer.default void
logTable(Table tableToLog, Index index, TableLoggerBase.Flags flags, boolean logUpdates, boolean logPrevValues)
Writes a subset of tableToLog to the binary log.default void
logTable(Table tableToLog, Index index, TableLoggerBase.Flags flags, boolean logUpdates, boolean logPrevValues, Collection<String> prevColumnsToLog)
Writes a subset of tableToLog to the binary log.void
logTableHandle(TableLoggerBase.Handle logHandle, Row.Flags flags, long index, TableLoggerBase.Operation operation)
Log a row from a table handlevoid
logTableHandlePrev(TableLoggerBase.Handle logHandle, Row.Flags flags, long index, TableLoggerBase.Operation operation)
Log a previous row from a table handlestatic <T> ColumnSource
maybeWrapWithNoPrevSource(Collection<String> prevColumnsToLog, String columnName, ColumnSource<T> columnSource)
Helper function to wrap a column source with a NoPrevColumnSource if previous values are not desired by the logger.Methods inherited from interface com.illumon.intradaylogger.IntradayLogger
close, getLogFormat, getWriterThread, init, init, init, init, isClosed, setOverflowThrottle, shutdown, tryWrite, usingDynamicPartitioning, waitDone, waitDone
Methods inherited from interface com.illumon.iris.db.tables.dataimport.TableLoggerBase
getLogHandle, logTable, logTable, logTable, logTable, logTable, logTable, logTable
-
Method Details
-
logTableHandle
void logTableHandle(TableLoggerBase.Handle logHandle, Row.Flags flags, long index, TableLoggerBase.Operation operation) throws IOExceptionLog a row from a table handle- Parameters:
logHandle
- the log handle to extract data fromflags
- controls the transaction behaviorindex
- the row (index key) to logoperation
- the table update event that resulted in this log call- Throws:
IOException
- if the log call fails
-
logTableHandlePrev
void logTableHandlePrev(TableLoggerBase.Handle logHandle, Row.Flags flags, long index, TableLoggerBase.Operation operation) throws IOExceptionLog a previous row from a table handle- Parameters:
logHandle
- the log handle to extract data fromflags
- controls the transaction behaviorindex
- the row (index key) to logoperation
- the table update event that resulted in this log call- Throws:
IOException
- if the log call fails
-
logTable
default void logTable(Table tableToLog, Index index, TableLoggerBase.Flags flags, boolean logUpdates, boolean logPrevValues) throws IOExceptionWrites a subset of tableToLog to the binary log.- Specified by:
logTable
in interfaceTableLoggerBase
- Parameters:
tableToLog
- the table to log, must conform to the definition used to create this loggerindex
- the subset of the table to logflags
- controls the transaction behaviorlogUpdates
- if true, continue to log updates to the tablelogPrevValues
- if true, log the old version of each row when rows are modified (only applicable when logUpdates is true)- Throws:
IOException
- if an error occurs while logging
-
logTable
default void logTable(Table tableToLog, Index index, TableLoggerBase.Flags flags, boolean logUpdates, boolean logPrevValues, Collection<String> prevColumnsToLog) throws IOExceptionWrites a subset of tableToLog to the binary log.- Specified by:
logTable
in interfaceTableLoggerBase
- Parameters:
tableToLog
- the table to log, must conform to the definition used to create this loggerindex
- the subset of the table to logflags
- controls the transaction behaviorlogUpdates
- if true, continue to log updates to the tableprevColumnsToLog
- if true, log the old version of each row when rows are modified (only applicable when logUpdates is true)logPrevValues
- if true, log the old version of each row when rows are modified (only applicable when logUpdates is true)- Throws:
IOException
- if an error occurs while logging
-
getWriter
Return the table writer. This will have been created by the created by the TableWriterFactory during init().- Returns:
- the internal TableWriter, or null if the implementation does not support this call.
-
maybeWrapWithNoPrevSource
static <T> ColumnSource maybeWrapWithNoPrevSource(Collection<String> prevColumnsToLog, String columnName, ColumnSource<T> columnSource)Helper function to wrap a column source with a NoPrevColumnSource if previous values are not desired by the logger.- Type Parameters:
T
- the column type- Parameters:
prevColumnsToLog
- collection of columns for which to log previous values (null for all)columnName
- name of the relevant columncolumnSource
- ColumnSource corresponding to the given column name- Returns:
- either the original column source or a NoPrevColumnSource
-