diff options
author | Igor Sysoev <igor@sysoev.ru> | 2003-11-30 20:03:18 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2003-11-30 20:03:18 +0000 |
commit | 865c150cb473fca8ff91d60ddd539ac6dbbe02ee (patch) | |
tree | 1ae51b35fbfaa069adf98db8a4c98887bdd3f9a8 /src/http/ngx_http_cache.h | |
parent | c2bba092eb07ea5fcd2e2ee987e3a304f755a3c7 (diff) | |
download | nginx-865c150cb473fca8ff91d60ddd539ac6dbbe02ee.tar.gz nginx-865c150cb473fca8ff91d60ddd539ac6dbbe02ee.zip |
nginx-0.0.1-2003-11-30-23:03:18 import
Diffstat (limited to 'src/http/ngx_http_cache.h')
-rw-r--r-- | src/http/ngx_http_cache.h | 68 |
1 files changed, 41 insertions, 27 deletions
diff --git a/src/http/ngx_http_cache.h b/src/http/ngx_http_cache.h index feaecd48e..b2088a06e 100644 --- a/src/http/ngx_http_cache.h +++ b/src/http/ngx_http_cache.h @@ -7,22 +7,37 @@ #include <ngx_http.h> +/* + * The 7 uses before an allocation. + * We can use maximum 7 bits, i.e up to the 127 uses. + */ +#define NGX_HTTP_CACHE_LAZY_ALLOCATION_BITS 3 + typedef struct { - uint32_t crc; - ngx_str_t key; - time_t accessed; + uint32_t crc; + ngx_str_t key; + time_t accessed; + + unsigned refs:20; /* 1048576 references */ + + unsigned count:NGX_HTTP_CACHE_LAZY_ALLOCATION_BITS; - unsigned refs:20; /* 1048576 references */ - unsigned count:2; /* lazy allocation: the 4 uses */ - unsigned deleted:1; + unsigned valid:1; + unsigned deleted:1; + unsigned memory:1; + unsigned mmap:1; + unsigned notify:1; - ngx_fd_t fd; - time_t last_modified; - time_t updated; + ngx_fd_t fd; +#if (NGX_USE_HTTP_FILE_CACHE_UNIQ) + ngx_file_uniq_t uniq; /* no needed with kqueue */ +#endif + time_t last_modified; + time_t updated; union { - off_t size; - ngx_str_t value; + off_t size; + ngx_str_t value; } data; } ngx_http_cache_t; @@ -69,30 +84,33 @@ typedef struct { } ngx_http_cache_ctx_t; -typedef struct { - ngx_http_cache_hash_t *open_files; -} ngx_http_cache_conf_t; - - #define NGX_HTTP_CACHE_STALE 1 #define NGX_HTTP_CACHE_AGED 2 #define NGX_HTTP_CACHE_THE_SAME 3 -int ngx_http_cache_get_file(ngx_http_request_t *r, ngx_http_cache_ctx_t *ctx); -int ngx_http_cache_open_file(ngx_http_cache_ctx_t *ctx, ngx_file_uniq_t uniq); -int ngx_http_cache_update_file(ngx_http_request_t *r,ngx_http_cache_ctx_t *ctx, - ngx_str_t *temp_file); - ngx_http_cache_t *ngx_http_cache_get(ngx_http_cache_hash_t *cache, + ngx_http_cleanup_t *cleanup, ngx_str_t *key, uint32_t *crc); -ngx_http_cache_t *ngx_http_cache_alloc(ngx_http_cache_hash_t *cache, + +ngx_http_cache_t *ngx_http_cache_alloc(ngx_http_cache_hash_t *hash, + ngx_http_cache_t *cache, + ngx_http_cleanup_t *cleanup, ngx_str_t *key, uint32_t crc, - ngx_log_t *log); + ngx_str_t *value, ngx_log_t *log); +void ngx_http_cache_free(ngx_http_cache_t *cache, + ngx_str_t *key, ngx_str_t *value, ngx_log_t *log); void ngx_http_cache_unlock(ngx_http_cache_hash_t *hash, ngx_http_cache_t *cache, ngx_log_t *log); +int ngx_http_cache_get_file(ngx_http_request_t *r, ngx_http_cache_ctx_t *ctx); +int ngx_http_cache_open_file(ngx_http_cache_ctx_t *ctx, ngx_file_uniq_t uniq); +int ngx_http_cache_update_file(ngx_http_request_t *r,ngx_http_cache_ctx_t *ctx, + ngx_str_t *temp_file); + +int ngx_http_send_cached(ngx_http_request_t *r); + int ngx_garbage_collector_http_cache_handler(ngx_gc_t *gc, ngx_str_t *name, ngx_dir_t *dir); @@ -100,8 +118,4 @@ int ngx_garbage_collector_http_cache_handler(ngx_gc_t *gc, ngx_str_t *name, char *ngx_http_set_cache_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); -extern ngx_module_t ngx_http_cache_module; - - - #endif /* _NGX_HTTP_CACHE_H_INCLUDED_ */ |