Interface QueryTable.Operation<T extends DynamicNode & NotificationStepReceiver>

All Known Subinterfaces:
QueryTable.MemoizableOperation<T>
All Known Implementing Classes:
BarrageMessageProducer.Operation, FlattenOperation, RangeJoinOperation, ReverseOperation, SliceLikeOperation, SortOperation, TableUpdateValidator, WouldMatchOperation
Enclosing class:
QueryTable

public static interface QueryTable.Operation<T extends DynamicNode & NotificationStepReceiver>
  • Method Details

    • snapshotNeeded

      default boolean snapshotNeeded()
    • getDescription

      String getDescription()
      Returns:
      the description of this operation
    • getLogPrefix

      String getLogPrefix()
      Returns:
      the log prefix of this operation
    • beginOperation

      default SafeCloseable beginOperation(@NotNull @NotNull QueryTable parent)
      Perform pre-instantiation work.
      Parameters:
      parent - The parent table for the operation
      Returns:
      A SafeCloseable that will be closed when the operation is complete, whether successful or not
    • newSnapshotControl

      default OperationSnapshotControl newSnapshotControl(QueryTable parent)
    • initialize

      QueryTable.Operation.Result<T> initialize(boolean usePrev, long beforeClock)
      Initialize this operation.
      Parameters:
      usePrev - data from the previous cycle should be used (otherwise use this cycle)
      beforeClock - the clock value that we captured before the function began; the function can use this value to bail out early if it notices something has gone wrong.
      Returns:
      the result table / listener if successful, null if it should be retried.