class InMemoryTopologyStore[+StoreId <: TopologyStoreId] extends TopologyStore[StoreId] with NamedLogging
- Alphabetic
- By Inheritance
- InMemoryTopologyStore
- NamedLogging
- TopologyStore
- FlagCloseable
- PerformUnlessClosing
- HasSynchronizeWithReaders
- OnShutdownRunner
- HasRunOnClosing
- HasUnlessClosing
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new InMemoryTopologyStore(storeId: StoreId, protocolVersion: ProtocolVersion, loggerFactory: NamedLoggerFactory, timeouts: ProcessingTimeout)(implicit ec: ExecutionContext)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addReader(reader: String)(implicit traceContext: TraceContext): UnlessShutdown[ReaderHandle]
TODO(#16601) Make this method private once PerformUnlessClosing doesn't need it any more
TODO(#16601) Make this method private once PerformUnlessClosing doesn't need it any more
- Attributes
- protected[this]
- Definition Classes
- HasSynchronizeWithReaders
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- 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 → OnShutdownRunner → AutoCloseable
- def closingTimeout: FiniteDuration
- Attributes
- protected
- Definition Classes
- FlagCloseable → PerformUnlessClosing
- def currentChangeDelay(asOfExclusive: CantonTimestamp)(implicit traceContext: TraceContext): FutureUnlessShutdown[TopologyDelay]
Yields the topologyChangeDelay valid at a given time or, if there is none in the store, the initial default value.
Yields the topologyChangeDelay valid at a given time or, if there is none in the store, the initial default value.
- Definition Classes
- TopologyStore
- def currentDispatchingWatermark(implicit traceContext: TraceContext): FutureUnlessShutdown[Option[CantonTimestamp]]
returns the current dispatching watermark
returns the current dispatching watermark
for topology transaction dispatching, we keep track up to which point in time we have mirrored the authorized store to the remote store
the timestamp always refers to the timestamp of the authorized store!
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def deleteAllData()(implicit traceContext: TraceContext): FutureUnlessShutdown[Unit]
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def doFindCurrentAndUpcomingChangeDelays(sequencedTime: CantonTimestamp)(implicit traceContext: TraceContext): FutureUnlessShutdown[Iterable[GenericStoredTopologyTransaction]]
Implementation specific parts of findCurrentAndUpcomingChangeDelays.
Implementation specific parts of findCurrentAndUpcomingChangeDelays. Implementations must filter by validFrom, validUntil, sequenced, isProposal, and rejected. Implementations may or may not apply further filters. Implementations should not spend resources for sorting.
- Attributes
- protected
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def dumpStoreContent()(implicit traceContext: TraceContext): FutureUnlessShutdown[GenericStoredTopologyTransactions]
- Attributes
- protected[topology]
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- Annotations
- @VisibleForTesting()
- implicit val ec: ExecutionContext
- Attributes
- protected
- Definition Classes
- TopologyStore
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- def findCurrentAndUpcomingChangeDelays(sequencedTime: CantonTimestamp)(implicit traceContext: TraceContext): FutureUnlessShutdown[NonEmpty[List[TopologyDelay]]]
Yields the currently valid and all upcoming topology change delays.
Yields the currently valid and all upcoming topology change delays. Namely:
- The change delay with validFrom < sequencedTime and validUntil.forall(_ >= sequencedTime), or the initial default value, if no such change delay exists.
- All change delays with validFrom >= sequencedTime and sequenced < sequencedTime. Excludes:
- Proposals
- Rejected transactions
- Transactions with
validUntil.contains(validFrom)
The result is sorted descending by validFrom. So the current change delay comes last.
- Definition Classes
- TopologyStore
- def findDispatchingTransactionsAfter(timestampExclusive: CantonTimestamp, limit: Option[Int])(implicit traceContext: TraceContext): FutureUnlessShutdown[GenericStoredTopologyTransactions]
Yields transactions with
validFrom
strictly greater thantimestampExclusive
.Yields transactions with
validFrom
strictly greater thantimestampExclusive
. Excludes rejected transactions and expired proposals.- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findEffectiveStateChanges(fromEffectiveInclusive: CantonTimestamp, onlyAtEffective: Boolean)(implicit traceContext: TraceContext): FutureUnlessShutdown[Seq[EffectiveStateChange]]
Find all effective-time state changes.
Find all effective-time state changes. One EffectiveStateChange contains all positive transactions which have valid_from == fromEffectiveInclusive for the new state, and all positive transactions which have valid_until == fromEffectiveInclusive for the old/previous, but none of those transactions which meet both criteria (transient topology changes). This query does not return proposals, rejected transactions or removals.
- fromEffectiveInclusive
If onlyAtEffective is true, look up state change for a single effective time, which should produce at most one result per mapping unique key. If onlyAtEffective is false, this defines the inclusive lower bound for effective time: lookup up all state changes for all effective times bigger than or equal to this.
- onlyAtEffective
Controls whether fromEffectiveInclusive defines a single effective time, or an inclusive lower bound for the query.
- returns
A sequence of EffectiveStateChange. Neither the sequence, nor the before/after fields in the results are ordered.
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findEssentialStateAtSequencedTime(asOfInclusive: SequencedTime, includeRejected: Boolean)(implicit traceContext: TraceContext): FutureUnlessShutdown[GenericStoredTopologyTransactions]
Yields all transactions with sequenced time less than or equal to
asOfInclusive
.Yields all transactions with sequenced time less than or equal to
asOfInclusive
. SetsvalidUntil
toNone
, ifvalidUntil
is strictly greater than the maximum value ofvalidFrom
.- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findExpiredChangeDelays(validUntilMinInclusive: CantonTimestamp, validUntilMaxExclusive: CantonTimestamp)(implicit traceContext: TraceContext): FutureUnlessShutdown[Seq[TopologyDelay]]
Yields all topologyChangeDelays that have expired within a given time period.
Yields all topologyChangeDelays that have expired within a given time period. Does not yield any proposals or rejections.
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findFirstMediatorStateForMediator(mediatorId: MediatorId)(implicit traceContext: TraceContext): FutureUnlessShutdown[Option[StoredTopologyTransaction[Replace, MediatorSynchronizerState]]]
Finds the topology transaction that first onboarded the mediator with ID
mediatorId
Finds the topology transaction that first onboarded the mediator with ID
mediatorId
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findFirstSequencerStateForSequencer(sequencerId: SequencerId)(implicit traceContext: TraceContext): FutureUnlessShutdown[Option[StoredTopologyTransaction[Replace, SequencerSynchronizerState]]]
Finds the topology transaction that first onboarded the sequencer with ID
sequencerId
Finds the topology transaction that first onboarded the sequencer with ID
sequencerId
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findFirstTrustCertificateForParticipant(participant: ParticipantId)(implicit traceContext: TraceContext): FutureUnlessShutdown[Option[StoredTopologyTransaction[Replace, SynchronizerTrustCertificate]]]
Finds the topology transaction that first onboarded the participant with ID
participantId
Finds the topology transaction that first onboarded the participant with ID
participantId
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findLatestTransactionsAndProposalsByTxHash(hashes: Set[TxHash])(implicit traceContext: TraceContext): FutureUnlessShutdown[Seq[GenericSignedTopologyTransaction]]
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findParticipantOnboardingTransactions(participantId: ParticipantId, synchronizerId: SynchronizerId)(implicit traceContext: TraceContext): FutureUnlessShutdown[Seq[GenericSignedTopologyTransaction]]
Returns initial set of onboarding transactions that should be dispatched to the synchronizer.
Returns initial set of onboarding transactions that should be dispatched to the synchronizer. Includes:
- SynchronizerTrustCertificates for the given participantId
- OwnerToKeyMappings for the given participantId
- NamespaceDelegations for the participantId's namespace
- The above even if they are expired.
- Transactions with operation REMOVE. Excludes:
- Proposals
- Rejected transactions
- Transactions that are not valid for synchronizerId
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findPositiveTransactions(asOf: CantonTimestamp, asOfInclusive: Boolean, isProposal: Boolean, types: Seq[Code], filterUid: Option[Seq[UniqueIdentifier]], filterNamespace: Option[Seq[Namespace]])(implicit traceContext: TraceContext): FutureUnlessShutdown[PositiveStoredTopologyTransactions]
returns the set of positive transactions
returns the set of positive transactions
this function is used by the topology processor to determine the set of transaction, such that we can perform cascading updates if there was a certificate revocation
- asOfInclusive
whether the search interval should include the current timepoint or not. the state at t is defined as "exclusive" of t, whereas for updating the state, we need to be able to query inclusive.
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findProposalsByTxHash(asOfExclusive: EffectiveTime, hashes: NonEmpty[Set[TxHash]])(implicit traceContext: TraceContext): FutureUnlessShutdown[Seq[GenericSignedTopologyTransaction]]
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findStored(asOfExclusive: CantonTimestamp, transaction: GenericSignedTopologyTransaction, includeRejected: Boolean = false)(implicit traceContext: TraceContext): FutureUnlessShutdown[Option[GenericStoredTopologyTransaction]]
Finds the last (i.e.
Finds the last (i.e. highest id) stored transaction with
validFrom
strictly beforeasOfExclusive
that has the same hash astransaction
.- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findStoredForVersion(asOfExclusive: CantonTimestamp, transaction: GenericTopologyTransaction, protocolVersion: ProtocolVersion)(implicit traceContext: TraceContext): FutureUnlessShutdown[Option[GenericStoredTopologyTransaction]]
Finds the last (i.e.
Finds the last (i.e. highest id) stored transaction with
validFrom
strictly beforeasOfExclusive
that has the same hash astransaction
and the representative protocol version for the givenprotocolVersion
. Excludes rejected transactions.- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findTransactionsForMapping(asOfExclusive: EffectiveTime, hashes: NonEmpty[Set[MappingHash]])(implicit traceContext: TraceContext): FutureUnlessShutdown[Seq[GenericSignedTopologyTransaction]]
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def findUpcomingEffectiveChanges(asOfInclusive: CantonTimestamp)(implicit traceContext: TraceContext): FutureUnlessShutdown[Seq[Change]]
fetch the effective time updates greater than or equal to a certain timestamp
fetch the effective time updates greater than or equal to a certain timestamp
this function is used to recover the future effective timestamp such that we can reschedule "pokes" of the topology client and updates of the acs commitment processor on startup
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def inspect(proposals: Boolean, timeQuery: TimeQuery, asOfExclusiveO: Option[CantonTimestamp], op: Option[TopologyChangeOp], types: Seq[Code], idFilter: Option[String], namespaceFilter: Option[String])(implicit traceContext: TraceContext): FutureUnlessShutdown[StoredTopologyTransactions[TopologyChangeOp, TopologyMapping]]
query optimized for inspection
query optimized for inspection
- proposals
if true, query only for proposals instead of approved transaction mappings
- asOfExclusiveO
if exists, use this timestamp for the head state to prevent race conditions on the console
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def inspectKnownParties(asOfExclusive: CantonTimestamp, filterParty: String, filterParticipant: String)(implicit traceContext: TraceContext): FutureUnlessShutdown[Set[PartyId]]
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def isClosing: Boolean
Check whether we're closing.
Check whether we're closing. Susceptible to race conditions; unless you're using this as a flag to the retry lib or you really know what you're doing, prefer
performUnlessClosing
and friends.- Definition Classes
- OnShutdownRunner → HasUnlessClosing
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def keepTrackOfReaderCallStack: Boolean
Set this to true to get detailed information about all futures that did not complete during shutdown.
Set this to true to get detailed information about all futures that did not complete during shutdown.
- Attributes
- protected[this]
- Definition Classes
- PerformUnlessClosing → HasSynchronizeWithReaders
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- val loggerFactory: NamedLoggerFactory
- Definition Classes
- InMemoryTopologyStore → NamedLogging
- def maxSleepMillis: Long
How often to poll to check that all tasks have completed.
How often to poll to check that all tasks have completed.
- Attributes
- protected
- Definition Classes
- PerformUnlessClosing
- def maxTimestamp(sequencedTime: SequencedTime, includeRejected: Boolean)(implicit traceContext: TraceContext): FutureUnlessShutdown[Option[(SequencedTime, EffectiveTime)]]
Finds the transaction with maximum effective time that has been sequenced at or before
sequencedTime
and yields the sequenced / effective time of that transaction.Finds the transaction with maximum effective time that has been sequenced at or before
sequencedTime
and yields the sequenced / effective time of that transaction.- includeRejected
whether to include rejected transactions
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def nameInternal: String
- Attributes
- protected[this]
- Definition Classes
- PerformUnlessClosing → HasSynchronizeWithReaders
- implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noTracingLogger: Logger
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def onCloseFailure(e: Throwable): Unit
- Attributes
- protected
- Definition Classes
- PerformUnlessClosing
- def onClosed(): Unit
- Definition Classes
- InMemoryTopologyStore → PerformUnlessClosing
- final def onFirstClose(): 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
- PerformUnlessClosing → OnShutdownRunner
- Annotations
- @SuppressWarnings()
- 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 afterf
completes, but other tasks may execute concurrently withf
, 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 off
, because it will result in a deadlock. DO NOT PUT retries, especially indefinite ones, insidef
.- f
The task to perform
- returns
scala.None$ if a shutdown has been initiated. Otherwise the result of the task.
- Definition Classes
- PerformUnlessClosing
- 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
- PerformUnlessClosing
- def performUnlessClosingCheckedUST[A, N, R](name: String, onClosing: => Checked[A, N, R])(etf: => CheckedT[FutureUnlessShutdown, A, N, R])(implicit ec: ExecutionContext, traceContext: TraceContext): CheckedT[FutureUnlessShutdown, A, N, R]
- Definition Classes
- PerformUnlessClosing
- 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. Bothetf
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 afteretf
completes, but other tasks may execute concurrently withetf
, 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 ofetf
, because it will result in a deadlock. DO NOT PUT retries, especially indefinite ones, insidef
.- etf
The task to perform
- Definition Classes
- PerformUnlessClosing
- def performUnlessClosingEitherU[E, R](name: String)(etf: => EitherT[Future, E, R])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[FutureUnlessShutdown, E, R]
- Definition Classes
- PerformUnlessClosing
- def performUnlessClosingEitherUSF[E, R](name: String)(etf: => EitherT[FutureUnlessShutdown, E, R])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[FutureUnlessShutdown, E, R]
- Definition Classes
- PerformUnlessClosing
- def performUnlessClosingEitherUSFAsync[E, R](name: String)(etf: => EitherT[FutureUnlessShutdown, E, R])(asyncResultToWaitForF: (R) => FutureUnlessShutdown[_])(implicit ec: ExecutionContext, traceContext: TraceContext): EitherT[FutureUnlessShutdown, E, R]
Use this method if closing/shutdown of the object should wait for asynchronous computation to finish too.
Use this method if closing/shutdown of the object should wait for asynchronous computation to finish too.
- etf
closing of this object will wait for all such spawned Futures to finish
- asyncResultToWaitForF
closing of this object will wait also wait for all such asynchronous Futures to finish too
- returns
the future spawned by etf
- Definition Classes
- PerformUnlessClosing
- 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 afterf
completes, but other tasks may execute concurrently withf
, 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 off
, because it will result in a deadlock. DO NOT PUT retries, especially indefinite ones, insidef
.- 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
- PerformUnlessClosing
- def performUnlessClosingOptionUSF[R](name: String)(otf: => OptionT[FutureUnlessShutdown, R])(implicit ec: ExecutionContext, traceContext: TraceContext): OptionT[FutureUnlessShutdown, R]
- Definition Classes
- PerformUnlessClosing
- def performUnlessClosingUSF[A](name: String)(f: => FutureUnlessShutdown[A])(implicit ec: ExecutionContext, traceContext: TraceContext): FutureUnlessShutdown[A]
- Definition Classes
- PerformUnlessClosing
- def performUnlessClosingUSFAsync[A](name: String)(f: => FutureUnlessShutdown[A])(asyncResultToWaitForF: (A) => FutureUnlessShutdown[_])(implicit ec: ExecutionContext, traceContext: TraceContext): FutureUnlessShutdown[A]
Use this method if closing/shutdown of the object should wait for asynchronous computation to finish too.
Use this method if closing/shutdown of the object should wait for asynchronous computation to finish too.
- f
closing of this object will wait for all such spawned Futures to finish
- asyncResultToWaitForF
closing of this object will wait also wait for all such asynchronous Futures to finish too
- returns
the future spawned by f
- Definition Classes
- PerformUnlessClosing
- def providesAdditionalSignatures(transaction: GenericSignedTopologyTransaction)(implicit traceContext: TraceContext): FutureUnlessShutdown[Boolean]
Checks whether the given signed topology transaction has signatures (at this point still unvalidated) from signing keys, for which there aren't yet signatures in the store.
Checks whether the given signed topology transaction has signatures (at this point still unvalidated) from signing keys, for which there aren't yet signatures in the store.
- Definition Classes
- TopologyStore
- def remainingReaders(): Seq[String]
- Attributes
- protected[this]
- Definition Classes
- HasSynchronizeWithReaders
- def removeReader(handle: ReaderHandle): Unit
TODO(#16601) Make this method private once PerformUnlessClosing doesn't need it any more
TODO(#16601) Make this method private once PerformUnlessClosing doesn't need it any more
- Attributes
- protected[this]
- Definition Classes
- HasSynchronizeWithReaders
- def runOnClose(task: RunOnClosing): UnlessShutdown[LifeCycleRegistrationHandle]
Schedules the given task to be run upon closing.
Schedules the given task to be run upon closing.
- returns
An com.digitalasset.canton.lifecycle.UnlessShutdown.Outcome indicates that the task will have been run when the
LifeCycleManager
'scloseAsync
method completes or whenAutoCloseable
'sclose
method returns, unless the returnedLifeCycleRegistrationHandle
was used to cancel the task or the task has been done beforehand. com.digitalasset.canton.lifecycle.UnlessShutdown.AbortedDueToShutdown if the task is not run due to closing. This always happens if isClosing returns true.
- Definition Classes
- OnShutdownRunner → HasRunOnClosing
- def runOnOrAfterClose(task: RunOnClosing)(implicit traceContext: TraceContext): LifeCycleRegistrationHandle
Register a task to run when closing is initiated, or run it immediately if closing is already ongoing.
Register a task to run when closing is initiated, or run it immediately if closing is already ongoing. Unlike runOnClose, this method does not guarantee that this task will have run by the time the
LifeCycleManager
'scloseAsync
method completes orAutoCloseable
'sclose
returns. This is because the task is run immediately if the component has already been closed.- Definition Classes
- HasRunOnClosing
- final def runOnOrAfterClose_(task: RunOnClosing)(implicit traceContext: TraceContext): Unit
Variant of runOnOrAfterClose that does not return a com.digitalasset.canton.lifecycle.LifeCycleRegistrationHandle.
Variant of runOnOrAfterClose that does not return a com.digitalasset.canton.lifecycle.LifeCycleRegistrationHandle.
- Definition Classes
- HasRunOnClosing
- def runTaskUnlessDone(task: RunOnClosing)(implicit traceContext: TraceContext): Unit
- Attributes
- protected[this]
- Definition Classes
- OnShutdownRunner → HasRunOnClosing
- val storeId: StoreId
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- def synchronizeWithClosingPatience: FiniteDuration
- Attributes
- protected[this]
- Definition Classes
- PerformUnlessClosing → HasSynchronizeWithReaders
- def synchronizeWithReaders()(implicit traceContext: TraceContext): Boolean
- Attributes
- protected[this]
- Definition Classes
- HasSynchronizeWithReaders
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val timeouts: ProcessingTimeout
- Definition Classes
- InMemoryTopologyStore → FlagCloseable
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def unlessClosing[F[_], A](fa: => F[A])(implicit F: CanAbortDueToShutdown[F]): F[A]
Runs the computation
fa
unless isClosing returns true.Runs the computation
fa
unless isClosing returns true.This method does not delay the closing while
fa
is running, unlike the methods inHasSynchronizeWithClosing
. Accordingly, this method is useful for intermittent checks whether the result of the computation is still relevant.- returns
The result of
fa
or com.digitalasset.canton.lifecycle.UnlessShutdown.AbortedDueToShutdown if isClosing is true
- Definition Classes
- HasUnlessClosing
- Annotations
- @inline()
- def update(sequenced: SequencedTime, effective: EffectiveTime, removeMapping: Map[MappingHash, PositiveInt], removeTxs: Set[TxHash], additions: Seq[GenericValidatedTopologyTransaction])(implicit traceContext: TraceContext): FutureUnlessShutdown[Unit]
Updates topology transactions.
Updates topology transactions. The method proceeds as follows:
- It expires all transactions
tx
withremoveMapping.get(tx.mapping.uniqueKey).exists(tx.serial <= _)
. Byexpire
we mean thatvalid_until
is set toeffective
, providedvalid_until
was previouslyNULL
andvalid_from < effective
. 2. It expires all transactionstx
withtx.hash
inremoveTxs
. 3. It adds all transactions in additions. Thereby: 3.1. It sets valid_until to effective, if there is a rejection reason or ifexpireImmediately
.
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- It expires all transactions
- def updateDispatchingWatermark(timestamp: CantonTimestamp)(implicit traceContext: TraceContext): FutureUnlessShutdown[Unit]
update the dispatching watermark for this target store
update the dispatching watermark for this target store
- Definition Classes
- InMemoryTopologyStore → TopologyStore
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def withReader[F[_], A](name: String)(f: => F[A])(implicit traceContext: TraceContext, F: Thereafter[F]): UnlessShutdown[F[A]]
- Attributes
- protected[this]
- Definition Classes
- HasSynchronizeWithReaders