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
00028 #ifndef __G_CACHE_H__
00029 #define __G_CACHE_H__
00030
00031 #include <_ansi.h>
00032 #include <glib/glist.h>
00033
00034 G_BEGIN_DECLS
00035
00036 typedef struct _GCache GCache;
00037
00038 typedef gpointer (*GCacheNewFunc) (gpointer key);
00039 typedef gpointer (*GCacheDupFunc) (gpointer value);
00040 typedef void (*GCacheDestroyFunc) (gpointer value);
00041
00042
00043
00044 IMPORT_C GCache* g_cache_new (GCacheNewFunc value_new_func,
00045 GCacheDestroyFunc value_destroy_func,
00046 GCacheDupFunc key_dup_func,
00047 GCacheDestroyFunc key_destroy_func,
00048 GHashFunc hash_key_func,
00049 GHashFunc hash_value_func,
00050 GEqualFunc key_equal_func);
00051 IMPORT_C void g_cache_destroy (GCache *cache);
00052 IMPORT_C gpointer g_cache_insert (GCache *cache,
00053 gpointer key);
00054 IMPORT_C void g_cache_remove (GCache *cache,
00055 gconstpointer value);
00056 IMPORT_C void g_cache_key_foreach (GCache *cache,
00057 GHFunc func,
00058 gpointer user_data);
00059 #ifndef G_DISABLE_DEPRECATED
00060 IMPORT_C void g_cache_value_foreach (GCache *cache,
00061 GHFunc func,
00062 gpointer user_data);
00063 #endif
00064
00065 G_END_DECLS
00066
00067 #endif
00068
00069
00070