00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __G_CACHE_H__
00028 #define __G_CACHE_H__
00029
00030 #include <glist.h>
00031
00032 G_BEGIN_DECLS
00033
00034 typedef struct _GCache GCache;
00035
00036 typedef gpointer (*GCacheNewFunc) (gpointer key);
00037 typedef gpointer (*GCacheDupFunc) (gpointer value);
00038 typedef void (*GCacheDestroyFunc) (gpointer value);
00039
00040
00041
00042 GCache* g_cache_new (GCacheNewFunc value_new_func,
00043 GCacheDestroyFunc value_destroy_func,
00044 GCacheDupFunc key_dup_func,
00045 GCacheDestroyFunc key_destroy_func,
00046 GHashFunc hash_key_func,
00047 GHashFunc hash_value_func,
00048 GEqualFunc key_equal_func);
00049 void g_cache_destroy (GCache *cache);
00050 gpointer g_cache_insert (GCache *cache,
00051 gpointer key);
00052 void g_cache_remove (GCache *cache,
00053 gconstpointer value);
00054 void g_cache_key_foreach (GCache *cache,
00055 GHFunc func,
00056 gpointer user_data);
00057 void g_cache_value_foreach (GCache *cache,
00058 GHFunc func,
00059 gpointer user_data);
00060
00061 G_END_DECLS
00062
00063 #endif
00064
00065
00066