trait Cache extends AnyRef
This trait defines methods that are used through the library where core business logic belongs to the cache that is not in scope for RFC 7234 and cannot be predefined.
- Source
- Cache.scala
- Alphabetic
- By Inheritance
- Cache
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def calculateFreshnessFromHeuristic(request: CacheRequest, response: CacheResponse): Option[Seconds]
Allows the cache to calculate the freshness lifetime of the request using a heuristic.
Allows the cache to calculate the freshness lifetime of the request using a heuristic.
- See also
https://tools.ietf.org/html/rfc7234#section-4.2.2
- abstract def containsMatchingHeaders(presentedHeaders: Map[HeaderName, Seq[String]], nominatedHeaders: Map[HeaderName, Seq[String]]): Boolean
Returns true if the selecting header fields nominated by the stored response match those presented by the new request.
Returns true if the selecting header fields nominated by the stored response match those presented by the new request. This method is broken out into the cache functionality as section 4.1 can do transformation of header fields in non-trivial ways that cannot be anticipated by this library in order to find a match. Given the vagaries of Vary and the overall complexities of fields such as User-Agent, the assumption is that the cache knows best.
- presentedHeaders
the presented headers by the new request.
- nominatedHeaders
the header fields nominated by the stored response
- returns
true if the cache considers it a match, false otherwise.
- See also
https://tools.ietf.org/html/rfc7234#section-4.1
- abstract def isCacheableExtension(extension: CacheDirectiveExtension): Boolean
Returns true if the cache knows what to do with this cache extension, false otherwise.
- abstract def isCacheableMethod(requestMethod: String): Boolean
In this context, a cache has "understood" a request method or a response status code if it recognizes it and implements all specified caching-related behavior.
In this context, a cache has "understood" a request method or a response status code if it recognizes it and implements all specified caching-related behavior.
- See also
https://tools.ietf.org/html/rfc7234#section-3
- abstract def isDefaultCacheable(statusCode: Int): Boolean
Returns whether a status code is cacheable by default or not.
Returns whether a status code is cacheable by default or not.
Note that in situations where the cache wants to be more conservative and ONLY cache when there is an explicit caching header, this method should always return false. See Chris Heald's position on https://blog.phusion.nl/2015/02/09/turbocaching-security-changes/ for more details.
- abstract def isShared: Boolean
Returns true if this is a shared cache.
Returns true if this is a shared cache. False indicates that this is a private cache.
- abstract def isUnderstoodStatusCode(statusCode: Int): Boolean
In this context, a cache has "understood" a request method or a response status code if it recognizes it and implements all specified caching-related behavior.
In this context, a cache has "understood" a request method or a response status code if it recognizes it and implements all specified caching-related behavior.
- See also
https://tools.ietf.org/html/rfc7234#section-3
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(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @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
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @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])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)