cache.h 530 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef CACHE_H
  2. #define CACHE_H
  3. #include "db_access.h"
  4. #define CACHE_PAGE_SIZE 65536
  5. #define CACHE_PAGE_COUNT 256
  6. typedef struct cache_page_t cache_page_t;
  7. struct cache_page_t
  8. {
  9. db_interval_t inter;
  10. db_data_t* ptr;
  11. cache_page_t* next;
  12. cache_page_t* prev;
  13. int page_size;
  14. int data;
  15. };
  16. typedef struct
  17. {
  18. int page_size;
  19. int page_count;
  20. db_data_t* cache;
  21. cache_page_t* head;
  22. cache_page_t* tail;
  23. } cache_t;
  24. int cache_init(cache_t *cache, int page_size_byte, int page_count);
  25. void cache_free(cache_t *cache);
  26. #endif