Interface IAdvancedEpochManager

All Superinterfaces:
Cloneable, IClone<IAdvancedEpochManager>, IEpochManager
All Known Implementing Classes:
AEpochManager, DistributedEpochManager, EpochManager

public interface IAdvancedEpochManager extends IClone<IAdvancedEpochManager>, IEpochManager
Globally manages the epochs for an application instance.

Controls the creation of new epochs, gives access to the latest epoch, and can create version history for multiversion components that want to record their versions.

Author:
ActiveViam
  • Method Details

    • onCommit

      void onCommit(IEpoch epoch)
      Notifies the epoch manager that a new epoch has been committed.

      This method should NOT call IVersionHistory.onCommit(IEpoch) as the commit may not affect all the histories.

      Parameters:
      epoch - the epoch of the commit
    • start

      void start()
      Starts the thread executing the epoch management plan.

      This method does nothing when IEpochManagementPolicy.getInvokeInterval() returns a negative value.

    • isStarted

      boolean isStarted()
      Indicates whether this epoch manager has been started or not.
      Returns:
      true if this epoch manager has been started, false otherwise
    • stop

      void stop()
      Stops the thread started by start().
    • getRootHistory

      IVersionHistory<?> getRootHistory()
      Description copied from interface: IEpochManager
      Gets the root history. The root history is the single history whose versions are followed by other histories.
      Specified by:
      getRootHistory in interface IEpochManager
      Returns:
      the root history
    • getHistories

      Map<String,? extends IVersionHistory<?>> getHistories()
      Description copied from interface: IEpochManager
      Gets the underlying histories indexed by their ids.
      Specified by:
      getHistories in interface IEpochManager