diff options
Diffstat (limited to 'desktop/cache.c')
-rw-r--r-- | desktop/cache.c | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/desktop/cache.c b/desktop/cache.c deleted file mode 100644 index 012683ebe..000000000 --- a/desktop/cache.c +++ /dev/null @@ -1,128 +0,0 @@ -/** - * $Id: cache.c,v 1.1 2002/11/02 22:28:05 bursa Exp $ - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "netsurf/desktop/cache.h" -#include "netsurf/render/utils.h" -#include "netsurf/utils/log.h" -#include "curl/curl.h" -#include "ubiqx/ubi_Cache.h" - -/** - * internal structures and declarations - */ - -ubi_cacheRoot memcache; - -struct memcache_entry { - ubi_cacheEntry Node; - char * url; - struct content * content; -}; - -static int memcache_compare(ubi_trItemPtr item, ubi_trNode * node); -void memcache_free(ubi_trNode * node); - - -/** - * cache_init -- initialise the cache manager - */ - -void cache_init(void) -{ - /* memory cache */ - ubi_cacheInit(&memcache, memcache_compare, memcache_free, 40, 100*1024); -} - - -/** - * cache_quit -- terminate the cache manager - */ - -void cache_quit(void) -{ - ubi_cacheClear(&memcache); -} - - -/** - * cache_get -- retrieve url from memory cache or disc cache - */ - -struct content * cache_get(char * const url) -{ - struct memcache_entry * entry; - - entry = (struct memcache_entry *) ubi_cacheGet(&memcache, url); - if (entry != 0) { - LOG(("url %s in cache, node %p", url, entry)); - entry->content->ref_count++; - return entry->content; - } - - LOG(("url %s not cached", url)); - - /* TODO: check disc cache */ - - return 0; -} - - -/** - * cache_put -- place content in the memory cache - */ - -void cache_put(char * const url, struct content * content, unsigned long size) -{ - struct memcache_entry * entry; - - entry = xcalloc(1, sizeof(struct memcache_entry)); - entry->url = xstrdup(url); - entry->content = content; - content->ref_count = 2; /* cache, caller */ - ubi_cachePut(&memcache, size, - (ubi_cacheEntry *) entry, entry->url); -} - - -/** - * cache_free -- free a cache object if it is no longer used - */ - -void cache_free(struct content * content) -{ - LOG(("content %p, ref_count %u", content, content->ref_count)); - if (--content->ref_count == 0) { - LOG(("ref count 0, freeing")); - content_destroy(content); - } -} - - -/** - * memory cache - */ - -static int memcache_compare(ubi_trItemPtr item, ubi_trNode * node) -{ - return strcmp((char *) item, ((struct memcache_entry *) node)->url); -} - - -void memcache_free(ubi_trNode * node) -{ - struct memcache_entry * entry = (struct memcache_entry *) node; - - LOG(("node %p, node->url %s", node, entry->url)); - - cache_free(entry->content); - free(entry->url); - free(entry); - - /* TODO: place the object in a disc cache */ -} - - |