class InMemoryMultiDomainEventLog extends MultiDomainEventLog with FlagCloseableAsync with NamedLogging

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InMemoryMultiDomainEventLog
  2. NamedLogging
  3. FlagCloseableAsync
  4. FlagCloseable
  5. MultiDomainEventLog
  6. AutoCloseable
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new InMemoryMultiDomainEventLog(lookupEvent: (NamedLoggingContext) => (EventLogId, LocalOffset) => Future[TimestampedEvent], lookupOffsetsBetween: (NamedLoggingContext) => (EventLogId) => (LocalOffset, LocalOffset) => Future[Seq[LocalOffset]], byEventId: (NamedLoggingContext) => (EventId) => OptionT[Future, (EventLogId, LocalOffset)], participantEventLogId: ParticipantEventLogId, clock: Clock, metrics: ParticipantMetrics, transferStoreFor: (TargetDomainId) => Either[String, TransferStore], indexedStringStore: IndexedStringStore, timeouts: ProcessingTimeout, futureSupervisor: FutureSupervisor, loggerFactory: NamedLoggerFactory)(implicit executionContext: ExecutionContext)

Type Members

  1. case class ReaderState(count: Int, readers: MultiSet[String]) extends Product with Serializable
    Definition Classes
    FlagCloseable

Value Members

  1. object ReaderState extends Serializable
    Definition Classes
    FlagCloseable
  2. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  3. final def ##: Int
    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. final def close(): Unit

    Blocks until all earlier tasks have completed and then prevents further tasks from being run.

    Blocks until all earlier tasks have completed and then prevents further tasks from being run.

    Definition Classes
    FlagCloseable → AutoCloseable
    Annotations
    @SuppressWarnings()
  8. def closeAsync(): Seq[AsyncOrSyncCloseable]

    closeAsync asynchronously releases resources held by a future

    closeAsync asynchronously releases resources held by a future

    returns

    an ordered sequence of async and sync closeables with async closeables made up of future and timeout

    Attributes
    protected
    Definition Classes
    InMemoryMultiDomainEventLogFlagCloseableAsync
  9. def closingTimeout: FiniteDuration
    Attributes
    protected
    Definition Classes
    FlagCloseable
  10. val dispatcher: Dispatcher[GlobalOffset]
    Attributes
    protected
    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  13. implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  14. implicit val executionContext: ExecutionContext
    Attributes
    protected
    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  15. def fetchUnpublished(id: EventLogId, upToInclusiveO: Option[LocalOffset])(implicit traceContext: TraceContext): Future[Seq[PendingPublish]]

    Finds unpublished events in the single dimension event log.

    Finds unpublished events in the single dimension event log. More precisely, finds all events from id with:

    • local offset strictly greater than the local offset of the last published event from id
    • local offset smaller than or equal to upToInclusiveO (if defined).
    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  16. def flush(): Future[Unit]

    Returns a future that completes after all publications have happened whose publish future has completed before the call to flush.

    Returns a future that completes after all publications have happened whose publish future has completed before the call to flush.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  17. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  18. def getOffsetByTimeAtOrAfter(fromInclusive: CantonTimestamp)(implicit traceContext: TraceContext): OptionT[Future, (GlobalOffset, EventLogId, LocalOffset)]

    Yields the smallest global offset whose publication time is at or after fromInclusive, if any.

    Yields the smallest global offset whose publication time is at or after fromInclusive, if any. The publication time is measured on the participant's local clock.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  19. def getOffsetByTimeUpTo(upToInclusive: CantonTimestamp)(implicit traceContext: TraceContext): OptionT[Future, GlobalOffset]

    Yields the largest global offset whose publication time is before or at upToInclusive, if any.

    Yields the largest global offset whose publication time is before or at upToInclusive, if any. The publication time is measured on the participant's local clock.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  20. def globalOffsetFor(eventLogId: EventLogId, localOffset: LocalOffset)(implicit traceContext: TraceContext): Future[Option[(GlobalOffset, CantonTimestamp)]]

    Returns the com.digitalasset.canton.participant.GlobalOffset under which the given local offset of the given event log was published, if any, along with its publication time

    Returns the com.digitalasset.canton.participant.GlobalOffset under which the given local offset of the given event log was published, if any, along with its publication time

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  21. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  22. val indexedStringStore: IndexedStringStore
  23. def internalPerformUnlessClosingF[A](name: String)(f: => Future[A])(implicit ec: ExecutionContext, traceContext: TraceContext): UnlessShutdown[Future[A]]
    Attributes
    protected
    Definition Classes
    FlagCloseable
  24. def isClosing: Boolean

    Check whether we're closing.

    Check whether we're closing. Susceptible to race conditions; unless you're using using this as a flag to the retry lib or you really know what you're doing, prefer performUnlessClosing and friends.

    Definition Classes
    FlagCloseable
  25. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  26. def keepTrackOfOpenFutures: Boolean

    track running futures on shutdown

    track running futures on shutdown

    set to true to get detailed information about all futures that did not complete during shutdown. if set to false, we don't do anything.

    Attributes
    protected
    Definition Classes
    FlagCloseable
  27. def lastDomainOffsetsBeforeOrAtGlobalOffset(upToInclusive: GlobalOffset, domainIds: List[DomainId], participantEventLogId: ParticipantEventLogId)(implicit traceContext: TraceContext): Future[(Map[DomainId, LocalOffset], Option[LocalOffset])]

    Yields the greatest local offsets for the underlying SingleDimensionEventLog with global offset less than or equal to upToInclusive.

    Yields the greatest local offsets for the underlying SingleDimensionEventLog with global offset less than or equal to upToInclusive.

    returns

    (domainLastOffsets, participantLastOffset), where domainLastOffsets maps the domains in domainIds to the greatest offset of the corresponding domain event log (if it exists) and participantLastOffset is the greatest participant offset.

    Definition Classes
    MultiDomainEventLog
  28. def lastGlobalOffset(upToInclusive: Option[GlobalOffset] = None)(implicit traceContext: TraceContext): OptionT[Future, GlobalOffset]

    Yields the highest global offset up to the given bound, if any.

    Yields the highest global offset up to the given bound, if any.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  29. def lastLocalOffset(id: EventLogId)(implicit traceContext: TraceContext): Future[Option[LocalOffset]]

    Returns the last linearized com.digitalasset.canton.participant.LocalOffset for the SingleDimensionEventLog id, if any

  30. def lastLocalOffsetBeforeOrAt(eventLogId: EventLogId, upToInclusive: GlobalOffset, timestampInclusive: Option[CantonTimestamp])(implicit traceContext: TraceContext): Future[Option[LocalOffset]]

    Returns the greatest local offset of the SingleDimensionEventLog given by eventLogId, if any, such that the following holds:

    Returns the greatest local offset of the SingleDimensionEventLog given by eventLogId, if any, such that the following holds:

    • The assigned global offset is below or at upToInclusive.
    • The record time of the event is below or at timestampInclusive (if defined)
    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  31. def locateOffset(deltaFromBeginning: GlobalOffset)(implicit traceContext: TraceContext): OptionT[Future, GlobalOffset]

    Yields the deltaFromBeginning-lowest global offset (if it exists).

    Yields the deltaFromBeginning-lowest global offset (if it exists). I.e., locateOffset(0) yields the smallest offset, localOffset(1) the second smallest offset, and so on.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  32. def locatePruningTimestamp(skip: NonNegativeInt)(implicit traceContext: TraceContext): OptionT[Future, CantonTimestamp]

    Yields the skip-lowest publication timestamp (if it exists).

    Yields the skip-lowest publication timestamp (if it exists). I.e., locatePruningTimestamp(0) yields the smallest timestamp, locatePruningTimestamp(1) the second smallest timestamp, and so on.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  33. def logger: TracedLogger
    Attributes
    protected
    Definition Classes
    NamedLogging
  34. val loggerFactory: NamedLoggerFactory
    Attributes
    protected
    Definition Classes
    InMemoryMultiDomainEventLogNamedLogging
  35. def lookupByEventIds(eventIds: Seq[EventId])(implicit traceContext: TraceContext): Future[Map[EventId, (GlobalOffset, TimestampedEvent, CantonTimestamp)]]

    Yields the global offset, event and publication time for all the published events with the given IDs.

    Yields the global offset, event and publication time for all the published events with the given IDs. Unpublished events are ignored.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  36. def lookupByGlobalOffsets(offsets: Seq[GlobalOffset])(implicit traceContext: TraceContext): Future[Seq[(GlobalOffset, TimestampedEvent)]]

    Yields all the published events with the given IDs.

    Yields all the published events with the given IDs. Unpublished events are ignored. Results are sorted by global offset.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  37. def lookupByLocalOffsets(id: EventLogId, offsets: Seq[LocalOffset])(implicit traceContext: TraceContext): Future[Seq[(GlobalOffset, TimestampedEvent)]]

    Yields all the published events with the given IDs.

    Yields all the published events with the given IDs. Unpublished events are ignored. Results are sorted by global offset.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  38. def lookupEventRange(upToInclusive: Option[GlobalOffset], limit: Option[Int])(implicit traceContext: TraceContext): Future[Seq[(GlobalOffset, TimestampedEvent)]]

    Yields all events with offset up to upToInclusive.

    Yields all events with offset up to upToInclusive.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  39. def lookupOffset(globalOffset: GlobalOffset)(implicit traceContext: TraceContext): OptionT[Future, (EventLogId, LocalOffset, CantonTimestamp)]

    Returns the data associated with the given offset, if any

    Returns the data associated with the given offset, if any

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  40. def lookupTransactionDomain(transactionId: LedgerTransactionId)(implicit traceContext: TraceContext): OptionT[Future, DomainId]

    Find the domain of a committed transaction.

    Find the domain of a committed transaction.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  41. def maxSleepMillis: Long
    Attributes
    protected
    Definition Classes
    FlagCloseable
  42. implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
    Attributes
    protected
    Definition Classes
    NamedLogging
  43. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  44. def noTracingLogger: Logger
    Attributes
    protected
    Definition Classes
    NamedLogging
  45. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  46. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  47. def notifyOnPublish(published: Seq[Publication])(implicit traceContext: TraceContext): Unit
    Attributes
    protected
    Definition Classes
    MultiDomainEventLog
  48. def notifyOnPublishTransfer(events: Seq[(TransferEvent, GlobalOffset)])(implicit traceContext: TraceContext): Future[Unit]
    Definition Classes
    MultiDomainEventLog
  49. def onCloseFailure(e: Throwable): Unit
    Attributes
    protected
    Definition Classes
    FlagCloseable
  50. final def onClosed(): Unit
    Definition Classes
    FlagCloseableAsyncFlagCloseable
  51. def performUnlessClosing[A](name: String)(f: => A)(implicit traceContext: TraceContext): UnlessShutdown[A]

    Performs the task given by f unless a shutdown has been initiated.

    Performs the task given by f unless a shutdown has been initiated. The shutdown will only begin after f completes, but other tasks may execute concurrently with f, if started using this function, or one of the other variants (performUnlessClosingF and performUnlessClosingEitherT). The tasks are assumed to take less than closingTimeout to complete.

    DO NOT CALL this.close as part of f, because it will result in a deadlock.

    f

    The task to perform

    returns

    scala.None$ if a shutdown has been initiated. Otherwise the result of the task.

    Definition Classes
    FlagCloseable
  52. def performUnlessClosingCheckedT[A, N, R](name: String, onClosing: => Checked[A, N, R])(etf: => CheckedT[Future, A, N, R])(implicit ec: ExecutionContext, traceContext: TraceContext): CheckedT[Future, A, N, R]
    Definition Classes
    FlagCloseable
  53. def performUnlessClosingEitherT[E, R](name: String, onClosing: => E)(etf: => EitherT[Future, E, R])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[Future, E, R]

    Performs the EitherT[Future] given by etf unless a shutdown has been initiated, in which case the provided error is returned instead.

    Performs the EitherT[Future] given by etf unless a shutdown has been initiated, in which case the provided error is returned instead. Both etf and the error are lazy; etf is only evaluated if there is no shutdown, the error only if we're shutting down. The shutdown will only begin after etf completes, but other tasks may execute concurrently with etf, if started using this function, or one of the other variants (performUnlessClosing and performUnlessClosingF). The tasks are assumed to take less than closingTimeout to complete.

    DO NOT CALL this.close as part of etf, because it will result in a deadlock.

    etf

    The task to perform

    Definition Classes
    FlagCloseable
  54. def performUnlessClosingEitherTF[E, R](name: String, onClosing: => E)(etf: => EitherT[Future, E, Future[R]])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[Future, E, Future[R]]
    Definition Classes
    FlagCloseable
  55. def performUnlessClosingEitherU[E, R](name: String)(etf: => EitherT[Future, E, R])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[FutureUnlessShutdown, E, R]
    Definition Classes
    FlagCloseable
  56. def performUnlessClosingEitherUSF[E, R](name: String)(etf: => EitherT[FutureUnlessShutdown, E, R])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[FutureUnlessShutdown, E, R]
    Definition Classes
    FlagCloseable
  57. def performUnlessClosingF[A](name: String)(f: => Future[A])(implicit ec: ExecutionContext, traceContext: TraceContext): FutureUnlessShutdown[A]

    Performs the Future given by f unless a shutdown has been initiated.

    Performs the Future given by f unless a shutdown has been initiated. The future is lazy and not evaluated during shutdown. The shutdown will only begin after f completes, but other tasks may execute concurrently with f, if started using this function, or one of the other variants (performUnlessClosing and performUnlessClosingEitherT). The tasks are assumed to take less than closingTimeout to complete.

    DO NOT CALL this.close as part of f, because it will result in a deadlock.

    f

    The task to perform

    returns

    The future completes with com.digitalasset.canton.lifecycle.UnlessShutdown.AbortedDueToShutdown if a shutdown has been initiated. Otherwise the result of the task wrapped in com.digitalasset.canton.lifecycle.UnlessShutdown.Outcome.

    Definition Classes
    FlagCloseable
  58. def performUnlessClosingUSF[A](name: String)(f: => FutureUnlessShutdown[A])(implicit ec: ExecutionContext, traceContext: TraceContext): FutureUnlessShutdown[A]
    Definition Classes
    FlagCloseable
  59. def prune(upToInclusive: GlobalOffset)(implicit traceContext: TraceContext): Future[Unit]

    Removes all events with offset up to upToInclusive.

    Removes all events with offset up to upToInclusive.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  60. def publicationTimeLowerBound: CantonTimestamp

    Returns a lower bound on the latest publication time of a published event.

    Returns a lower bound on the latest publication time of a published event. All events published later will receive the same or higher publication time. Increases monotonically, even across restarts.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  61. def publish(data: PublicationData): Future[Unit]

    Appends a new event to the event log.

    Appends a new event to the event log.

    The new event must already have been published in the SingleDimensionEventLog with id MultiDomainEventLog.PublicationData.eventLogId at offset MultiDomainEventLog.PublicationData.localOffset.

    The method is idempotent, i.e., it does nothing, if it is called twice with the same com.digitalasset.canton.participant.store.EventLogId and com.digitalasset.canton.participant.LocalOffset.

    The returned future completes already when the event has been successfully inserted into the internal (in-memory) inbox. Events will be persisted asynchronously. Actual publication has happened before a subsequent flush call's future completes.

    The caller must await completion of the returned future before calling the method again. Otherwise, the method may fail with an exception or return a failed future. (This restriction arises, because some implementations will offer the event to an Akka source queue, and the number of concurrent offers for such queues is bounded.)

    The event log will stall, i.e., log an error and refuse to publish further events in the following cases:

    • If an event cannot be persisted, even after retrying.
    • If events are published out of order, i.e., publish(id, o2).flatMap(_ => publish(id, o1)) with o1 < o2. Exception: The event log will not stall in case of republication of previously published events, i.e., publish(id, o1).flatMap(_ => publish(id, o2).flatMap(_ => publish(id, o1))) will not stall the event log.
    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  62. def reportMaxEventAgeMetric(oldestEventTimestamp: Option[CantonTimestamp]): Unit

    Report the max-event-age metric based on the oldest event timestamp and the current clock time or zero if no oldest timestamp exists (e.g.

    Report the max-event-age metric based on the oldest event timestamp and the current clock time or zero if no oldest timestamp exists (e.g. events fully pruned).

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
  63. def runOnShutdown[T](task: RunOnShutdown)(implicit traceContext: TraceContext): Unit

    Register a task to run when shutdown is initiated.

    Register a task to run when shutdown is initiated.

    You can use this for example to register tasks that cancel long-running computations, whose termination you can then wait for in "closeAsync".

    Definition Classes
    FlagCloseable
  64. def runStateChanged(waitingState: Boolean = false): Unit
    Attributes
    protected
    Definition Classes
    FlagCloseable
    Annotations
    @VisibleForTesting()
  65. def setOnPublish(newOnPublish: OnPublish): Unit

    Sets the listener to be called whenever events are published to the multi-domain event log.

    Sets the listener to be called whenever events are published to the multi-domain event log.

    Definition Classes
    MultiDomainEventLog
  66. def subscribe(startInclusive: Option[GlobalOffset])(implicit tc: TraceContext): Source[(GlobalOffset, Traced[LedgerSyncEvent]), NotUsed]

    Yields an akka source with all stored events, optionally starting from a given offset.

    Yields an akka source with all stored events, optionally starting from a given offset.

    Definition Classes
    InMemoryMultiDomainEventLogMultiDomainEventLog
    Exceptions thrown

    java.lang.IllegalArgumentException if startInclusive is lower than MultiDomainEventLog.ledgerFirstOffset.

  67. def subscribeForLedgerEnds(startExclusive: GlobalOffset): Source[GlobalOffset, NotUsed]

    Yields an akka source with ledger end.

    Yields an akka source with ledger end.

    Definition Classes
    MultiDomainEventLog
  68. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  69. val timeouts: ProcessingTimeout
    Attributes
    protected
    Definition Classes
    InMemoryMultiDomainEventLogFlagCloseable
  70. def toString(): String
    Definition Classes
    AnyRef → Any
  71. val transferStoreFor: (TargetDomainId) => Either[String, TransferStore]
  72. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  73. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  74. 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 NamedLogging

Inherited from FlagCloseableAsync

Inherited from FlagCloseable

Inherited from MultiDomainEventLog

Inherited from AutoCloseable

Inherited from AnyRef

Inherited from Any

Ungrouped