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.
  • Method Details

    • logTableHandle

      void logTableHandle​(TableLoggerBase.Handle logHandle, Row.Flags flags, long index, TableLoggerBase.Operation operation) throws IOException
      Log a row from a table handle
      Parameters:
      logHandle - the log handle to extract data from
      flags - controls the transaction behavior
      index - the row (index key) to log
      operation - 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 IOException
      Log a previous row from a table handle
      Parameters:
      logHandle - the log handle to extract data from
      flags - controls the transaction behavior
      index - the row (index key) to log
      operation - 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 IOException
      Writes a subset of tableToLog to the binary log.
      Specified by:
      logTable in interface TableLoggerBase
      Parameters:
      tableToLog - the table to log, must conform to the definition used to create this logger
      index - the subset of the table to log
      flags - controls the transaction behavior
      logUpdates - if true, continue to log updates to the table
      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
    • logTable

      default void logTable​(Table tableToLog, Index index, TableLoggerBase.Flags flags, boolean logUpdates, boolean logPrevValues, Collection<String> prevColumnsToLog) throws IOException
      Writes a subset of tableToLog to the binary log.
      Specified by:
      logTable in interface TableLoggerBase
      Parameters:
      tableToLog - the table to log, must conform to the definition used to create this logger
      index - the subset of the table to log
      flags - controls the transaction behavior
      logUpdates - if true, continue to log updates to the table
      prevColumnsToLog - 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

      default TableWriter 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 column
      columnSource - ColumnSource corresponding to the given column name
      Returns:
      either the original column source or a NoPrevColumnSource