Add statistics, gc support to mempool and a workaround path lookup for module.
authorcedric <cedric>
Wed, 17 Sep 2008 15:20:35 +0000 (15:20 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 17 Sep 2008 15:20:35 +0000 (15:20 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eina@36051 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/include/eina_mempool.h
src/lib/eina_mempool.c

index 673c3eb..8ea805b 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "eina_types.h"
 #include "eina_error.h"
+#include "eina_module.h"
 
 /**
  * @defgroup Memory_Pool_Group Memory Pool
@@ -32,6 +33,7 @@ EAPI extern Eina_Error EINA_ERROR_NOT_MEMPOOL_MODULE;
 
 EAPI int eina_mempool_init(void);
 EAPI int eina_mempool_shutdown(void);
+EAPI Eina_Module_Group * eina_mempool_module_group_get(void);
 
 EAPI Eina_Mempool * eina_mempool_new(const char *module, const char *context, const char *options, ...);
 EAPI void eina_mempool_delete(Eina_Mempool *mp);
@@ -40,6 +42,9 @@ EAPI void * eina_mempool_realloc(Eina_Mempool *mp, void *element, unsigned int s
 EAPI void * eina_mempool_alloc(Eina_Mempool *mp, unsigned int size);
 EAPI void eina_mempool_free(Eina_Mempool *mp, void *element);
 
+EAPI void eina_mempool_gc(Eina_Mempool *mp);
+EAPI void eina_mempool_statistics(Eina_Mempool *mp);
+
 /** @} */
 
 #endif /* EINA_MEMPOOL_H_ */
index e01c884..6acc9f4 100644 (file)
@@ -123,6 +123,12 @@ eina_mempool_shutdown(void)
        return _init_count;
 }
 
+EAPI Eina_Module_Group *
+eina_mempool_module_group_get(void)
+{
+       return _group;
+}
+
 /**
  * 
  */
@@ -185,3 +191,19 @@ EAPI void eina_mempool_free(Eina_Mempool *mp, void *element)
 
        mp->backend->free(mp->backend_data, element);
 }
+
+EAPI void eina_mempool_gc(Eina_Mempool *mp)
+{
+       assert(mp);
+       assert(mp->backend->garbage_collect);
+
+       mp->backend->garbage_collect(mp->backend_data);
+}
+
+EAPI void eina_mempool_statistics(Eina_Mempool *mp)
+{
+       assert(mp);
+       assert(mp->backend->statistics);
+
+       mp->backend->statistics(mp->backend_data);
+}