com.twitter.cache

FutureCache

abstract class FutureCache[K, V] extends AnyRef

FutureCache is used to represent an in-memory, in-process, asynchronous cache.

Every cache operation is atomic.

Any correct implementation should make sure that you evict failed results, and don't interrupt the underlying request that has been fired off. EvictingCache and Future#interrupting are useful tools for building correct FutureCaches. A reference implementation for caching the results of an asynchronous function can be found at FutureCache$.default.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. FutureCache
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new FutureCache()

Abstract Value Members

  1. abstract def evict(key: K, value: Future[V]): Boolean

    Evicts the contents of a key if the old value is value.

    Evicts the contents of a key if the old value is value.

    Since com.twitter.util.Future uses reference equality, you must use the same object reference to evict a value.

    returns

    true if the key was evicted false if the key was not evicted

  2. abstract def get(key: K): Option[Future[V]]

    Gets the cached Future.

    Gets the cached Future.

    returns

    None if a value hasn't been specified for that key yet Some(ksync computation) if the value has been specified. Just because this returns Some(..) doesn't mean that it has been satisfied, but if it hasn't been satisfied, it's probably in-flight.

  3. abstract def getOrElseUpdate(key: K)(compute: ⇒ Future[V]): Future[V]

    Gets the cached Future, or if it hasn't been returned yet, computes it and returns that value.

  4. abstract def set(key: K, value: Future[V]): Unit

    Unconditionally sets a value for a given key

  5. abstract def size: Int

    returns

    the number of results that have been computed successfully or are in flight.

Concrete 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. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  16. def toString(): String

    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped