class TopologyTimestampPlusEpsilonTracker extends NamedLogging with TimeAwaiter

Compute and synchronise the effective timestamps

Transaction validation and processing depends on the topology state at the given sequencer time. Therefore, we would have to inspect every event first if there is a topology state and wait until all the topology processing has finished before evaluation the transaction. This would be slow and sequential.

Therefore, we future date our topology transactions with an "effective time", computed from the sequencerTime + domainParameters.topologyChangeDelay.

However, the domainParameters can change and so can the topologyChangeDelay. Therefore we need to be a bit careful when computing the effective time and track the changes to the topologyChangeDelay parameter accordingly.

This class (hopefully) takes care of this logic

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TopologyTimestampPlusEpsilonTracker
  2. TimeAwaiter
  3. NamedLogging
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new TopologyTimestampPlusEpsilonTracker(loggerFactory: NamedLoggerFactory)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def adjustEpsilon(effectiveTime: EffectiveTime, sequencingTime: SequencedTime, epsilon: NonNegativeFiniteDuration)(implicit traceContext: TraceContext): Option[NonNegativeFiniteDuration]

    adjust epsilon if it changed

    adjust epsilon if it changed

    returns

    None if epsilon is unchanged, otherwise we return the previous epsilon

  5. def adjustTimestampForTick(sequencingTime: SequencedTime)(implicit traceContext: TraceContext, executionContext: ExecutionContext): Future[EffectiveTime]
  6. def adjustTimestampForUpdate(sequencingTime: SequencedTime)(implicit traceContext: TraceContext, executionContext: ExecutionContext): Future[EffectiveTime]
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def awaitKnownTimestamp(timestamp: CantonTimestamp): Option[Future[Unit]]
    Attributes
    protected
    Definition Classes
    TimeAwaiter
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  10. def currentKnownTime: CantonTimestamp
    Attributes
    protected
    Definition Classes
    TopologyTimestampPlusEpsilonTrackerTimeAwaiter
  11. def effectiveTimeProcessed(effectiveTime: EffectiveTime): Unit
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. def logger: TracedLogger
    Attributes
    protected
    Definition Classes
    NamedLogging
  18. val loggerFactory: NamedLoggerFactory
  19. implicit def loggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. def noTracingLogger: Logger
    Attributes
    protected
    Definition Classes
    NamedLogging
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  24. def notifyAwaitedFutures(upToInclusive: CantonTimestamp): Unit
    Attributes
    protected
    Definition Classes
    TimeAwaiter
  25. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  26. def toString(): String
    Definition Classes
    AnyRef → Any
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  29. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from TimeAwaiter

Inherited from NamedLogging

Inherited from AnyRef

Inherited from Any

Ungrouped