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
- All
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.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
- @native() @throws( ... )