class ConcurrentMapCache[K, V] extends FutureCache[K, V]
A com.twitter.cache.FutureCache backed by a
java.util.concurrent.ConcurrentMap
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 interrupting com.twitter.util.Futures are
useful tools for building correct FutureCaches. A reference
implementation for caching the results of an asynchronous function
with a ConcurrentMap
can be found at FutureCache$.fromMap.
- Alphabetic
- By Inheritance
- ConcurrentMapCache
- FutureCache
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ConcurrentMapCache(underlying: ConcurrentMap[K, Future[V]])
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]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def evict(key: K, value: Future[V]): Boolean
Evicts the contents of a
key
if the old value isvalue
.Evicts the contents of a
key
if the old value isvalue
.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
- Definition Classes
- ConcurrentMapCache → FutureCache
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- 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.
- Definition Classes
- ConcurrentMapCache → FutureCache
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- 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.
Gets the cached Future, or if it hasn't been returned yet, computes it and returns that value.
- Definition Classes
- ConcurrentMapCache → FutureCache
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def set(key: K, value: Future[V]): Unit
Unconditionally sets a value for a given key
Unconditionally sets a value for a given key
- Definition Classes
- ConcurrentMapCache → FutureCache
- def size: Int
- returns
the number of results that have been computed successfully or are in flight.
- Definition Classes
- ConcurrentMapCache → FutureCache
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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()