Apache2
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Collaboration diagram for mod_cache:

Modules

 Cache Functions
 
 Cache Storage Functions
 
 Cache Utility Functions
 

Data Structures

struct  cache_info
 
struct  cache_object
 
struct  cache_handle
 
struct  cache_provider
 

Macros

#define CACHE_DECLARE(type)   type
 
#define CACHE_DECLARE_NONSTD(type)   type
 
#define CACHE_DECLARE_DATA
 
#define CACHE_PROVIDER_GROUP   "cache"
 
#define AP_CACHE_HIT_ENV   "cache-hit"
 
#define AP_CACHE_REVALIDATE_ENV   "cache-revalidate"
 
#define AP_CACHE_MISS_ENV   "cache-miss"
 
#define AP_CACHE_INVALIDATE_ENV   "cache-invalidate"
 
#define AP_CACHE_STATUS_ENV   "cache-status"
 

Typedefs

typedef struct cache_info cache_info
 
typedef struct cache_object cache_object_t
 
typedef struct cache_handle cache_handle_t
 

Enumerations

enum  ap_cache_status_e { AP_CACHE_HIT, AP_CACHE_REVALIDATE, AP_CACHE_MISS, AP_CACHE_INVALIDATE }
 

Functions

apr_time_t ap_cache_current_age (cache_info *info, const apr_time_t age_value, apr_time_t now)
 
apr_time_t ap_cache_hex2usec (const char *x)
 
void ap_cache_usec2hex (apr_time_t j, char *y)
 
char * ap_cache_generate_name (apr_pool_t *p, int dirlevels, int dirlength, const char *name)
 
const char * ap_cache_tokstr (apr_pool_t *p, const char *list, const char **str)
 
apr_table_tap_cache_cacheable_headers (apr_pool_t *pool, apr_table_t *t, server_rec *s)
 
apr_table_tap_cache_cacheable_headers_in (request_rec *r)
 
apr_table_tap_cache_cacheable_headers_out (request_rec *r)
 
int ap_cache_control (request_rec *r, cache_control_t *cc, const char *cc_header, const char *pragma_header, apr_table_t *headers)
 
int cache_hook_cache_status (cache_handle_t *h, request_rec *r, apr_table_t *headers, ap_cache_status_e status, const char *reason)
 
apr_status_t ap_cache_generate_key (request_rec *r, apr_pool_t *p, const char **key)
 

Detailed Description

Macro Definition Documentation

#define AP_CACHE_HIT_ENV   "cache-hit"
#define AP_CACHE_INVALIDATE_ENV   "cache-invalidate"
#define AP_CACHE_MISS_ENV   "cache-miss"
#define AP_CACHE_REVALIDATE_ENV   "cache-revalidate"
#define AP_CACHE_STATUS_ENV   "cache-status"
#define CACHE_DECLARE (   type)    type
#define CACHE_DECLARE_DATA
#define CACHE_DECLARE_NONSTD (   type)    type
#define CACHE_PROVIDER_GROUP   "cache"

Typedef Documentation

typedef struct cache_handle cache_handle_t
typedef struct cache_info cache_info
typedef struct cache_object cache_object_t

Enumeration Type Documentation

Enumerator
AP_CACHE_HIT 
AP_CACHE_REVALIDATE 
AP_CACHE_MISS 
AP_CACHE_INVALIDATE 

Function Documentation

apr_table_t* ap_cache_cacheable_headers ( apr_pool_t pool,
apr_table_t t,
server_rec s 
)
apr_table_t* ap_cache_cacheable_headers_in ( request_rec r)
apr_table_t* ap_cache_cacheable_headers_out ( request_rec r)
int ap_cache_control ( request_rec r,
cache_control_t cc,
const char *  cc_header,
const char *  pragma_header,
apr_table_t headers 
)

Parse the Cache-Control and Pragma headers in one go, marking which tokens appear within the header. Populate the structure passed in.

apr_time_t ap_cache_current_age ( cache_info info,
const apr_time_t  age_value,
apr_time_t  now 
)
apr_status_t ap_cache_generate_key ( request_rec r,
apr_pool_t p,
const char **  key 
)
char* ap_cache_generate_name ( apr_pool_t p,
int  dirlevels,
int  dirlength,
const char *  name 
)
apr_time_t ap_cache_hex2usec ( const char *  x)
const char* ap_cache_tokstr ( apr_pool_t p,
const char *  list,
const char **  str 
)
void ap_cache_usec2hex ( apr_time_t  j,
char *  y 
)
int cache_hook_cache_status ( cache_handle_t h,
request_rec r,
apr_table_t headers,
ap_cache_status_e  status,
const char *  reason 
)

Cache status hook. This hook is called as soon as the cache has made a decision as to whether an entity should be served from cache (hit), should be served from cache after a successful validation (revalidate), or served from the backend and potentially cached (miss).

A basic implementation of this hook exists in mod_cache which writes this information to the subprocess environment, and optionally to request headers. Further implementations may add hooks as appropriate to perform more advanced processing, or to store statistics about the cache behaviour.