class PackagePreferenceBackend extends NamedLogging
- Alphabetic
- By Inheritance
- PackagePreferenceBackend
- NamedLogging
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new PackagePreferenceBackend(clock: Clock, adminParty: LfPartyId, syncService: SyncService, loggerFactory: NamedLoggerFactory)(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
- 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 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
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def getPreferredPackageVersionForParticipant(packageName: PackageName, supportedPackageIds: Set[LfPackageId], supportedPackageIdsDescription: String)(implicit loggingContext: LoggingContextWithTrace): FutureUnlessShutdown[Either[String, LfPackageId]]
- def getPreferredPackages(packageVettingRequirements: PackageVettingRequirements, packageFilter: PackageFilter, synchronizerId: Option[SynchronizerId], vettingValidAt: Option[CantonTimestamp])(implicit loggingContext: LoggingContextWithTrace): FutureUnlessShutdown[Either[String, (Seq[PackageReference], SynchronizerId)]]
Computes the preferred package versions for the provided package vetting requirements.
Computes the preferred package versions for the provided package vetting requirements.
In detail, the method outputs the most preferred package for each package-name specified in the package vetting requirements. For a package version to be eligible, it must satisfy the following conditions:
- It is vetted by all the parties specified in the value of its corresponding package vetting requirements map entry.
- All its package dependencies are "commonly-vetted" by all the "interested" parties
Note:
- an interested party is a party that appears in the package vetting requirements
- a commonly-vetted package refers to a package-id that is vetted by all parties that have at least a package-id vetted pertaining to the dependency's package-name.
- for brevity, we refer here to a party vetting a package if all its hosting participants have vetted the package.
- packageVettingRequirements
The package vetting requirements for which the package preferences should be computed.
- packageFilter
Filters which package IDs are eligible for consideration in the preference computation for each package-name specified in the provided requirements.
- synchronizerId
If provided, only this synchronizer's vetting topology state is considered in the computation. Otherwise, the highest package version from all the connected synchronizers is returned.
- vettingValidAt
If provided, used to compute the package vetting state at this timestamp.
- returns
if a solution exists, the best package preference coupled with the synchronizer id that it pertains to.
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- val loggerFactory: NamedLoggerFactory
- Definition Classes
- PackagePreferenceBackend → NamedLogging
- 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()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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])