Cache Policy Manager - Policies

  A cache policy represent a single class of cachable objects:

    - class membership is defined by 'predicate', a TALES expression
      with access to the following top-level names:

      'object' -- the object itself

      'view' -- the name of the view method

      'keywords' -- keywords passed to the request

      'request' -- the REQUEST object itself

      'member' -- the authenticated member, or None if anonymous

      'modules' -- usual TALES access-with-import

      'nothing' -- None

      'time' -- A DateTime object for the current date and time

    - The "Last-modified" HTTP response header will be set using
      'mtime_func', which is another TALES expression evaluated
      against the same namespace.  If not specified explicitly,
      uses 'object/modified'.

    - The "Expires" HTTP response header and the "max-age" token of
      the "Cache-control" header will be set using 'max_age_secs',
      if passed;  it should be an integer value in seconds.

    - The "Vary" HTTP response headers will be set if a value is
      provided. The Vary header is described in RFC 2616. In essence,
      it instructs caches that respect this header (such as Squid
      after version 2.4) to distinguish between requests not just by
      the request URL, but also by values found in the headers showing
      in the Vary tag. "Vary: Cookie" would force Squid to also take
      Cookie headers into account when deciding what cached object to
      choose and serve in response to a request.

    - The "ETag" HTTP response header will be set if a value is
      provided. The value is a TALES expression and the result
      after evaluation will be used as the ETag header value.

    - Other tokens will be added to the "Cache-control" HTTP response
      header as follows:

       'no_cache=1' argument => "no-cache" token

       'no_store=1' argument => "no-store" token

       'must_revalidate=1' argument => "must-revalidate" token
 
