cache_storage.h revision a2617cfd96f4e1b0cf1a8861ea980dfb28ffcbd5
f86a86eea994dc0d186331bec991eed99d108056minfrin/* Licensed to the Apache Software Foundation (ASF) under one or more
f86a86eea994dc0d186331bec991eed99d108056minfrin * contributor license agreements. See the NOTICE file distributed with
f86a86eea994dc0d186331bec991eed99d108056minfrin * this work for additional information regarding copyright ownership.
f86a86eea994dc0d186331bec991eed99d108056minfrin * The ASF licenses this file to You under the Apache License, Version 2.0
f86a86eea994dc0d186331bec991eed99d108056minfrin * (the "License"); you may not use this file except in compliance with
f86a86eea994dc0d186331bec991eed99d108056minfrin * the License. You may obtain a copy of the License at
f86a86eea994dc0d186331bec991eed99d108056minfrin *
f86a86eea994dc0d186331bec991eed99d108056minfrin * http://www.apache.org/licenses/LICENSE-2.0
f86a86eea994dc0d186331bec991eed99d108056minfrin *
f86a86eea994dc0d186331bec991eed99d108056minfrin * Unless required by applicable law or agreed to in writing, software
f86a86eea994dc0d186331bec991eed99d108056minfrin * distributed under the License is distributed on an "AS IS" BASIS,
f86a86eea994dc0d186331bec991eed99d108056minfrin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
f86a86eea994dc0d186331bec991eed99d108056minfrin * See the License for the specific language governing permissions and
f86a86eea994dc0d186331bec991eed99d108056minfrin * limitations under the License.
f86a86eea994dc0d186331bec991eed99d108056minfrin */
f86a86eea994dc0d186331bec991eed99d108056minfrin
f86a86eea994dc0d186331bec991eed99d108056minfrin/**
f86a86eea994dc0d186331bec991eed99d108056minfrin * @file cache_storage.h
f86a86eea994dc0d186331bec991eed99d108056minfrin * @brief Cache Storage Functions
f86a86eea994dc0d186331bec991eed99d108056minfrin *
f86a86eea994dc0d186331bec991eed99d108056minfrin * @defgroup Cache_storage Cache Storage Functions
f86a86eea994dc0d186331bec991eed99d108056minfrin * @ingroup MOD_CACHE
f86a86eea994dc0d186331bec991eed99d108056minfrin * @{
f86a86eea994dc0d186331bec991eed99d108056minfrin */
f86a86eea994dc0d186331bec991eed99d108056minfrin
f86a86eea994dc0d186331bec991eed99d108056minfrin#ifndef CACHE_STORAGE_H
f86a86eea994dc0d186331bec991eed99d108056minfrin#define CACHE_STORAGE_H
f86a86eea994dc0d186331bec991eed99d108056minfrin
f86a86eea994dc0d186331bec991eed99d108056minfrin#ifdef __cplusplus
f86a86eea994dc0d186331bec991eed99d108056minfrinextern "C" {
f86a86eea994dc0d186331bec991eed99d108056minfrin#endif
f86a86eea994dc0d186331bec991eed99d108056minfrin
f86a86eea994dc0d186331bec991eed99d108056minfrin#include "mod_cache.h"
528d669867298f6743187e798121893290135fd8minfrin#include "cache_util.h"
f86a86eea994dc0d186331bec991eed99d108056minfrin
f86a86eea994dc0d186331bec991eed99d108056minfrin/**
f86a86eea994dc0d186331bec991eed99d108056minfrin * cache_storage.c
f86a86eea994dc0d186331bec991eed99d108056minfrin */
587909d32387845b4470c84c025638375c031bcaminfrinint cache_remove_url(cache_request_rec *cache, request_rec *r);
34f6b45d02039cb734332bc1cecf16c1dcd8f2a5minfrinint cache_create_entity(cache_request_rec *cache, request_rec *r,
34f6b45d02039cb734332bc1cecf16c1dcd8f2a5minfrin apr_off_t size, apr_bucket_brigade *in);
34f6b45d02039cb734332bc1cecf16c1dcd8f2a5minfrinint cache_select(cache_request_rec *cache, request_rec *r);
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin/**
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin * invalidate a specific URL entity in all caches
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin *
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin * All cached entities for this URL are removed, usually in
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin * response to a POST/PUT or DELETE.
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin *
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin * This function returns OK if at least one entity was found and
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin * removed, and DECLINED if no cached entities were removed.
7d84798eed7ad93b66b88841974525641749a9b1trawick * @param cache cache_request_rec
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin * @param r request_rec
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin */
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrinint cache_invalidate(cache_request_rec *cache, request_rec *r);
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin
528d669867298f6743187e798121893290135fd8minfrinapr_status_t cache_generate_key_default(request_rec *r, apr_pool_t* p,
528d669867298f6743187e798121893290135fd8minfrin const char **key);
f86a86eea994dc0d186331bec991eed99d108056minfrin
561ff82c9a4873234adbd99ddd5bbfdd2466ac53minfrin/**
561ff82c9a4873234adbd99ddd5bbfdd2466ac53minfrin * Merge in cached headers into the response
561ff82c9a4873234adbd99ddd5bbfdd2466ac53minfrin * @param h cache_handle_t
561ff82c9a4873234adbd99ddd5bbfdd2466ac53minfrin * @param r request_rec
80cabec6752622e0db5421af61502bfda95715eaminfrin * @param top headers to be applied
80cabec6752622e0db5421af61502bfda95715eaminfrin * @param bottom headers to be overwritten
a2617cfd96f4e1b0cf1a8861ea980dfb28ffcbd5minfrin * @param revalidation true if revalidation is taking place
561ff82c9a4873234adbd99ddd5bbfdd2466ac53minfrin */
80cabec6752622e0db5421af61502bfda95715eaminfrinvoid cache_accept_headers(cache_handle_t *h, request_rec *r, apr_table_t *top,
a2617cfd96f4e1b0cf1a8861ea980dfb28ffcbd5minfrin apr_table_t *bottom, int revalidation);
561ff82c9a4873234adbd99ddd5bbfdd2466ac53minfrin
f86a86eea994dc0d186331bec991eed99d108056minfrin#ifdef __cplusplus
f86a86eea994dc0d186331bec991eed99d108056minfrin}
f86a86eea994dc0d186331bec991eed99d108056minfrin#endif
f86a86eea994dc0d186331bec991eed99d108056minfrin
f86a86eea994dc0d186331bec991eed99d108056minfrin#endif /* !CACHE_STORAGE_H */
f86a86eea994dc0d186331bec991eed99d108056minfrin/** @} */