fscache.h
上传用户:ladybrid91
上传日期:2007-01-04
资源大小:287k
文件大小:2k
源码类别:

Web服务器

开发平台:

Unix_Linux

  1. /*
  2. ** fscache.h
  3. **
  4. ** Copyright (c) 1995 Peter Eriksson <pen@signum.se>
  5. **
  6. ** This program is free software; you can redistribute it and/or modify
  7. ** it under the terms of the GNU General Public License as published by
  8. ** the Free Software Foundation; either version 2 of the License, or
  9. ** (at your option) any later version.
  10. **
  11. ** This program is distributed in the hope that it will be useful,
  12. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. ** GNU General Public License for more details.
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program; if not, write to the Free Software
  17. ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18. */
  19. #ifndef PHTTPD_FSCACHE_H
  20. #define PHTTPD_FSCACHE_H
  21. #include <sys/stat.h>
  22. #include <dirent.h>
  23. typedef struct fsinfo_s
  24. {
  25.     char *url;
  26.     char *path;
  27.     struct stat sb;
  28.     
  29.     uid_t uid;
  30.     gid_t gid;
  31.     mutex_t data_lock;
  32.     unsigned int data_avail;
  33.     union
  34.     {
  35. struct
  36. {
  37.     char *content;
  38. } file;
  39. struct
  40. {
  41.     unsigned int size;
  42.     struct fsc_dirent
  43.     {
  44. struct dirent *dbp;
  45. struct fscentry_s *fep;
  46. struct fsc_dirent *next;
  47.     } *head;
  48. } dir;
  49.     } data;
  50. } fsinfo_t;
  51. typedef struct fscentry_s
  52. {
  53.     cacheentry_t *cep;
  54.     fsinfo_t *fip;
  55. } fscentry_t;
  56. #define FSCF_GETDATA    0x0001
  57. #define FSCF_RELOAD     0x0002
  58. extern void fscache_init(void);
  59. extern fscentry_t *fscache_lookup(char *url,
  60.   unsigned int flags);
  61. extern void fscache_release(fscentry_t *fep);
  62. extern int fscache_getdata(fscentry_t *fep);
  63. extern int fscache_getstats(cachestat_t *csp);
  64. extern int fscache_refresh;
  65. extern int fscache_ttl;
  66. extern int fscache_gc_interval;
  67. extern int fscache_size;
  68. #endif