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
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Cache
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. 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

  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

  3. abstract def isCacheableExtension(extension: CacheDirectiveExtension): Boolean

    Returns true if the cache knows what to do with this cache extension, false otherwise.

  4. 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

  5. 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.

  6. 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.

  7. 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

  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
    @native() @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
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  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
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  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
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped