29 #define DISABLE_DEBUGLOG
31 #include "multicache_p.h"
33 #include <gwenhywfar/debug.h>
45 GWEN_MULTICACHE_ENTRY *e;
184 GWEN_MULTICACHE_ENTRY *e;
186 e=(GWEN_MULTICACHE_ENTRY*)GWEN_MultiCache_Entry_IdMap_Find(ct->entryMap,
id);
201 uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4) {
203 GWEN_MULTICACHE_ENTRY *e;
205 e=(GWEN_MULTICACHE_ENTRY*)GWEN_MultiCache_Entry_IdMap_Find(ct->entryMap,
id);
225 GWEN_MULTICACHE_ENTRY *e;
230 GWEN_MultiCache_Entry_IdMap_Insert(ct->entryMap,
id, (
void*) e);
236 uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4) {
237 GWEN_MULTICACHE_ENTRY *e;
247 GWEN_MultiCache_Entry_IdMap_Insert(ct->entryMap,
id, (
void*) e);
253 GWEN_MULTICACHE_ENTRY *e;
255 e=(GWEN_MULTICACHE_ENTRY*)GWEN_MultiCache_Entry_IdMap_Find(ct->entryMap,
id);
285 return ct->attachFn(p);
295 return ct->freeFn(p);
319 mc->typeList=GWEN_MultiCache_Type_List_new();
320 mc->entryList=GWEN_MultiCache_Entry_List_new();
329 GWEN_MULTICACHE_ENTRY *ce;
331 ce=GWEN_MultiCache_Entry_List_First(mc->entryList);
334 ce=GWEN_MultiCache_Entry_List_First(mc->entryList);
337 GWEN_MultiCache_Entry_List_free(mc->entryList);
338 GWEN_MultiCache_Type_List_free(mc->typeList);
347 return mc->maxSizeUsed;
359 if ((mc->currentSize+esize)>mc->maxSize) {
363 nsize=(mc->currentSize+esize)-mc->maxSize;
365 GWEN_MULTICACHE_ENTRY *ce;
367 ce=GWEN_MultiCache_Entry_List_First(mc->entryList);
379 mc->currentSize+=esize;
380 if (mc->currentSize>mc->maxSizeUsed)
381 mc->maxSizeUsed=mc->currentSize;
383 GWEN_MultiCache_Entry_List_Add(e, mc->entryList);
394 assert(e->cacheType);
397 GWEN_MultiCache_Entry_List_Del(e);
406 mc->currentSize-=esize;
412 GWEN_MULTICACHE_ENTRY *ce;
418 ce=GWEN_MultiCache_Entry_List_First(mc->entryList);
420 GWEN_MULTICACHE_ENTRY *ceNext;
422 ceNext=GWEN_MultiCache_Entry_List_Next(ce);
435 GWEN_MultiCache_Entry_List_Del(e);
436 GWEN_MultiCache_Entry_List_Add(e, mc->entryList);