📄 mod_disk_cache.h
字号:
/* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */#ifndef MOD_DISK_CACHE_H#define MOD_DISK_CACHE_H/* * include for mod_disk_cache: Disk Based HTTP 1.1 Cache. */#define VARY_FORMAT_VERSION 3#define DISK_FORMAT_VERSION 4#define CACHE_HEADER_SUFFIX ".header"#define CACHE_DATA_SUFFIX ".data"#define CACHE_VDIR_SUFFIX ".vary"#define AP_TEMPFILE_PREFIX "/"#define AP_TEMPFILE_BASE "aptmp"#define AP_TEMPFILE_SUFFIX "XXXXXX"#define AP_TEMPFILE_BASELEN strlen(AP_TEMPFILE_BASE)#define AP_TEMPFILE_NAMELEN strlen(AP_TEMPFILE_BASE AP_TEMPFILE_SUFFIX)#define AP_TEMPFILE AP_TEMPFILE_PREFIX AP_TEMPFILE_BASE AP_TEMPFILE_SUFFIXtypedef struct { /* Indicates the format of the header struct stored on-disk. */ apr_uint32_t format; /* The HTTP status code returned for this response. */ int status; /* The size of the entity name that follows. */ apr_size_t name_len; /* The number of times we've cached this entity. */ apr_size_t entity_version; /* Miscellaneous time values. */ apr_time_t date; apr_time_t expire; apr_time_t request_time; apr_time_t response_time;} disk_cache_info_t;/* * disk_cache_object_t * Pointed to by cache_object_t::vobj */typedef struct disk_cache_object { const char *root; /* the location of the cache directory */ apr_size_t root_len; char *tempfile; /* temp file tohold the content */ const char *prefix; const char *datafile; /* name of file where the data will go */ const char *hdrsfile; /* name of file where the hdrs will go */ const char *hashfile; /* Computed hash key for this URI */ const char *name; /* Requested URI without vary bits - suitable for mortals. */ const char *key; /* On-disk prefix; URI with Vary bits (if present) */ apr_file_t *fd; /* data file */ apr_file_t *hfd; /* headers file */ apr_file_t *tfd; /* temporary file for data */ apr_off_t file_size; /* File size of the cached data file */ disk_cache_info_t disk_info; /* Header information. */} disk_cache_object_t;/* * mod_disk_cache configuration *//* TODO: Make defaults OS specific */#define CACHEFILE_LEN 20 /* must be less than HASH_LEN/2 */#define DEFAULT_DIRLEVELS 3#define DEFAULT_DIRLENGTH 2#define DEFAULT_MIN_FILE_SIZE 1#define DEFAULT_MAX_FILE_SIZE 1000000typedef struct { const char* cache_root; apr_size_t cache_root_len; int dirlevels; /* Number of levels of subdirectories */ int dirlength; /* Length of subdirectory names */ apr_off_t minfs; /* minimum file size for cached files */ apr_off_t maxfs; /* maximum file size for cached files */} disk_cache_conf;#endif /*MOD_DISK_CACHE_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -