This file contains the definition of a GWEN_MULTICACHE, a cache for multiple types of data.
More...
|
This object describes one of the data types which can be managed by a central cache object.
|
GWENHYWFAR_API GWEN_MULTICACHE_TYPE * | GWEN_MultiCache_Type_new (GWEN_MULTICACHE *mc) |
|
GWENHYWFAR_API void | GWEN_MultiCache_Type_free (GWEN_MULTICACHE_TYPE *ct) |
|
GWENHYWFAR_API void * | GWEN_MultiCache_Type_GetData (const GWEN_MULTICACHE_TYPE *ct, uint32_t id) |
|
GWENHYWFAR_API void * | GWEN_MultiCache_Type_GetDataWithParams (const GWEN_MULTICACHE_TYPE *ct, uint32_t id, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4) |
|
GWENHYWFAR_API void * | GWEN_MultiCache_Type_GetDataWithParams5 (const GWEN_MULTICACHE_TYPE *ct, uint32_t id, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4, double param5) |
|
GWENHYWFAR_API void | GWEN_MultiCache_Type_SetData (GWEN_MULTICACHE_TYPE *ct, uint32_t id, void *ptr, uint32_t size) |
|
GWENHYWFAR_API void | GWEN_MultiCache_Type_SetDataWithParams (GWEN_MULTICACHE_TYPE *ct, uint32_t id, void *ptr, uint32_t size, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4) |
|
GWENHYWFAR_API void | GWEN_MultiCache_Type_SetDataWithParams5 (GWEN_MULTICACHE_TYPE *ct, uint32_t id, void *ptr, uint32_t size, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t param4, double param5) |
|
GWENHYWFAR_API void | GWEN_MultiCache_Type_PurgeData (GWEN_MULTICACHE_TYPE *ct, uint32_t id) |
|
GWENHYWFAR_API void | GWEN_MultiCache_Type_PurgeAll (GWEN_MULTICACHE_TYPE *ct) |
|
GWENHYWFAR_API void | GWEN_MultiCache_Type_SetAttachFn (GWEN_MULTICACHE_TYPE *ct, GWEN_MULTICACHE_TYPE_ATTACH_FN fn) |
|
GWENHYWFAR_API void | GWEN_MultiCache_Type_SetFreeFn (GWEN_MULTICACHE_TYPE *ct, GWEN_MULTICACHE_TYPE_FREE_FN fn) |
|
This file contains the definition of a GWEN_MULTICACHE, a cache for multiple types of data.
The idea behind this is to make it easier to handle multiple types of objects by a single central cache object. You only set the maximum total size the central cache object is allowed to provide and that object will use this sum of memory to provide a caching mechanism for multiple different types.
You'll have to create a single central cache object (GWEN_MULTICACHE). Then you can create a GWEN_MULTICACHE_TYPE object for each kind of data you want to have managed. For the GWEN_MULTICACHE_TYPE object you need to provide functions which will increase and decrease the reference counter of the object cached.
typedef int GWENHYWFAR_CB(* GWEN_MULTICACHE_TYPE_ATTACH_FN) (void *p) |
typedef int GWENHYWFAR_CB(* GWEN_MULTICACHE_TYPE_FREE_FN) (void *p) |
GWENHYWFAR_API void* GWEN_MultiCache_Type_GetDataWithParams |
( |
const GWEN_MULTICACHE_TYPE * |
ct, |
|
|
uint32_t |
id, |
|
|
uint32_t |
param1, |
|
|
uint32_t |
param2, |
|
|
uint32_t |
param3, |
|
|
uint32_t |
param4 |
|
) |
| |
GWENHYWFAR_API void* GWEN_MultiCache_Type_GetDataWithParams5 |
( |
const GWEN_MULTICACHE_TYPE * |
ct, |
|
|
uint32_t |
id, |
|
|
uint32_t |
param1, |
|
|
uint32_t |
param2, |
|
|
uint32_t |
param3, |
|
|
uint32_t |
param4, |
|
|
double |
param5 |
|
) |
| |
GWENHYWFAR_API void GWEN_MultiCache_Type_SetDataWithParams |
( |
GWEN_MULTICACHE_TYPE * |
ct, |
|
|
uint32_t |
id, |
|
|
void * |
ptr, |
|
|
uint32_t |
size, |
|
|
uint32_t |
param1, |
|
|
uint32_t |
param2, |
|
|
uint32_t |
param3, |
|
|
uint32_t |
param4 |
|
) |
| |
GWENHYWFAR_API void GWEN_MultiCache_Type_SetDataWithParams5 |
( |
GWEN_MULTICACHE_TYPE * |
ct, |
|
|
uint32_t |
id, |
|
|
void * |
ptr, |
|
|
uint32_t |
size, |
|
|
uint32_t |
param1, |
|
|
uint32_t |
param2, |
|
|
uint32_t |
param3, |
|
|
uint32_t |
param4, |
|
|
double |
param5 |
|
) |
| |