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 interrupting com.twitter.util.Futures are useful tools for building correct FutureCaches. A reference implementation for caching the results of an asynchronous function can be found at FutureCache$.default.
- Alphabetic
- By Inheritance
- FutureCache
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new FutureCache()
Abstract Value Members
-
abstract
def
evict(key: K, value: Future[V]): Boolean
Evicts the contents of a
keyif the old value isvalue.Evicts the contents of a
keyif 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
-
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.
-
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.
-
abstract
def
set(key: K, value: Future[V]): Unit
Unconditionally sets a value for a given key
-
abstract
def
size: Int
- returns
the number of results that have been computed successfully or are in flight.
Concrete 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( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
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()
-
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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()