Packages

package caching

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract class Cache[Key, Value] extends AnyRef

    A cache.

    A cache. Used for caching values.

    The strategy used for eviction is implementation-dependent.

    Key

    The type of the key used to look up values.

    Value

    The type of the cached value.

  2. abstract class ConcurrentCache[Key, Value] extends Cache[Key, Value]

    A cache that is concurrency-safe.

    A cache that is concurrency-safe. This means it is able to look up a value, and if it does not exist, populate the value at that key, in a single, atomic action.

    Key

    The type of the key used to look up values.

    Value

    The type of the cached value.

  3. trait EffectTunnel[F[_], G[_]] extends AnyRef

    Type class for disguising the effect of F in the effect of G temporarily so that F's effect can tunnel through an API that supports only G.

    Type class for disguising the effect of F in the effect of G temporarily so that F's effect can tunnel through an API that supports only G.

    For example, let F be com.digitalasset.canton.lifecycle.FutureUnlessShutdown, and G be scala.concurrent.Future (see caching.EffectTunnel.effectTunnelFutureUnlessShutdown). Then we can enter the tunnel G by converting com.digitalasset.canton.lifecycle.UnlessShutdown.AbortedDueToShutdowns into a dedicated exception in a failed scala.concurrent.Future and exit the tunnel again by converting the exception back into com.digitalasset.canton.lifecycle.UnlessShutdown.AbortedDueToShutdown. This obviously assumes that the API that supports only scala.concurrent.Future does not interact with the dedicated exception.

  4. final class NoCache[Key, Value] extends ConcurrentCache[Key, Value]

Value Members

  1. object Cache
  2. object CaffeineCache
  3. object EffectTunnel
  4. object ScaffeineCache
  5. object SizedCache

Ungrouped