Merging r40572 through r40597 from trunk into soc-2011-tomato
[blender.git] / intern / memutil / MEM_CacheLimiterC-Api.h
index 898625a95635922408d2965652585daf49743f70..b3e67c9434da3f00db59cd90628a91bb6fa5bc9d 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * ***** END GPL LICENSE BLOCK *****
  */
 
-#ifndef __MEM_cache_limiter_c_api_h_included__
-#define __MEM_cache_limiter_c_api_h_included__ 1
+/** \file memutil/MEM_CacheLimiterC-Api.h
+ *  \ingroup memutil
+ */
+
+
+#ifndef MEM_CACHELIMITERC_API_H
+#define MEM_CACHELIMITERC_API_H
 
 #ifdef __cplusplus
 extern "C" {
@@ -37,10 +42,13 @@ typedef struct MEM_CacheLimiterHandle_s MEM_CacheLimiterHandleC;
 /* function used to remove data from memory */
 typedef void(*MEM_CacheLimiter_Destruct_Func)(void*);
 
-#ifndef __MEM_cache_limiter_h_included__
+/* function used to measure stored data element size */
+typedef intptr_t(*MEM_CacheLimiter_DataSize_Func) (void*);
+
+#ifndef MEM_CACHELIMITER_H
 extern void MEM_CacheLimiter_set_maximum(int m);
-extern int MEM_CacheLimiter_get_maximum();
-#endif
+extern int MEM_CacheLimiter_get_maximum(void);
+#endif // MEM_CACHELIMITER_H
 /** 
  * Create new MEM_CacheLimiter object 
  * managed objects are destructed with the data_destructor
@@ -50,7 +58,8 @@ extern int MEM_CacheLimiter_get_maximum();
  */
 
 extern MEM_CacheLimiterC * new_MEM_CacheLimiter(
-       MEM_CacheLimiter_Destruct_Func data_destructor);
+       MEM_CacheLimiter_Destruct_Func data_destructor,
+       MEM_CacheLimiter_DataSize_Func data_size);
 
 /** 
  * Delete MEM_CacheLimiter
@@ -137,5 +146,4 @@ extern void * MEM_CacheLimiter_get(MEM_CacheLimiterHandleC * handle);
 #endif
 
 
-#endif
-
+#endif // MEM_CACHELIMITERC_API_H