1/* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17/** 18 * @file cache_storage.h 19 * @brief Cache Storage Functions 20 * 21 * @defgroup Cache_storage Cache Storage Functions 22 * @ingroup MOD_CACHE 23 * @{ 24 */ 25 26#ifndef CACHE_STORAGE_H 27#define CACHE_STORAGE_H 28 29#ifdef __cplusplus 30extern "C" { 31#endif 32 33#include "mod_cache.h" 34#include "cache_util.h" 35 36/** 37 * cache_storage.c 38 */ 39int cache_remove_url(cache_request_rec *cache, request_rec *r); 40int cache_create_entity(cache_request_rec *cache, request_rec *r, 41 apr_off_t size, apr_bucket_brigade *in); 42int cache_select(cache_request_rec *cache, request_rec *r); 43 44/** 45 * invalidate a specific URL entity in all caches 46 * 47 * All cached entities for this URL are removed, usually in 48 * response to a POST/PUT or DELETE. 49 * 50 * This function returns OK if at least one entity was found and 51 * removed, and DECLINED if no cached entities were removed. 52 * @param cache cache_request_rec 53 * @param r request_rec 54 */ 55int cache_invalidate(cache_request_rec *cache, request_rec *r); 56 57apr_status_t cache_generate_key_default(request_rec *r, apr_pool_t* p, 58 const char **key); 59 60/** 61 * Merge in cached headers into the response 62 * @param h cache_handle_t 63 * @param r request_rec 64 * @param top headers to be applied 65 * @param bottom headers to be overwritten 66 * @param revalidation true if revalidation is taking place 67 */ 68void cache_accept_headers(cache_handle_t *h, request_rec *r, apr_table_t *top, 69 apr_table_t *bottom, int revalidation); 70 71#ifdef __cplusplus 72} 73#endif 74 75#endif /* !CACHE_STORAGE_H */ 76/** @} */ 77