glib.Cache.Cache Class Reference

List of all members.

Detailed Description

Description A GCache allows sharing of complex data structures, in order to save system resources.

GTK+ uses caches for GtkStyles and GdkGCs. These consume a lot of resources, so a GCache is used to see if a GtkStyle or GdkGC with the required properties already exists. If it does, then the existing object is used instead of creating a new one. GCache uses keys and values. A GCache key describes the properties of a particular resource. A GCache value is the actual resource.


Public Member Functions

GCachegetCacheStruct ()
 this (GCache *gCache)
 Sets our main struct and passes it to the parent class.
 this (GCacheNewFunc valueNewFunc, GCacheDestroyFunc valueDestroyFunc, GCacheDupFunc keyDupFunc, GCacheDestroyFunc keyDestroyFunc, GHashFunc hashKeyFunc, GHashFunc hashValueFunc, GEqualFunc keyEqualFunc)
 Creates a new GCache.
void * insert (void *key)
 Gets the value corresponding to the given key, creating it if necessary.
void remove (void *value)
 Decreases the reference count of the given value.
void destroy ()
 Frees the memory allocated for the GCache.
void keyForeach (GHFunc func, void *userData)
 Calls the given function for each of the keys in the GCache.
void valueForeach (GHFunc func, void *userData)
 Warning g_cache_value_foreach has been deprecated since version 2.10 and should not be used in newly-written code.

Protected Member Functions

void * getStruct ()
 the main Gtk struct as a void*

Protected Attributes

GCachegCache
 the main Gtk struct


Constructor & Destructor Documentation

glib.Cache.Cache.this ( GCache gCache  ) 

Sets our main struct and passes it to the parent class.

glib.Cache.Cache.this ( GCacheNewFunc  valueNewFunc,
GCacheDestroyFunc  valueDestroyFunc,
GCacheDupFunc  keyDupFunc,
GCacheDestroyFunc  keyDestroyFunc,
GHashFunc  hashKeyFunc,
GHashFunc  hashValueFunc,
GEqualFunc  keyEqualFunc 
)

Creates a new GCache.

value_new_func: a function to create a new object given a key. This is called by g_cache_insert() if an object with the given key does not already exist. value_destroy_func: a function to destroy an object. It is called by g_cache_remove() when the object is no longer needed (i.e. its reference count drops to 0). key_dup_func: a function to copy a key. It is called by g_cache_insert() if the key does not already exist in the GCache. key_destroy_func: a function to destroy a key. It is called by g_cache_remove() when the object is no longer needed (i.e. its reference count drops to 0). hash_key_func: a function to create a hash value from a key. hash_value_func: a function to create a hash value from a value. key_equal_func: a function to compare two keys. It should return TRUE if the two keys are equivalent. Returns: a new GCache.


Member Function Documentation

void glib.Cache.Cache.destroy (  ) 

Frees the memory allocated for the GCache.

Note that it does not destroy the keys and values which were contained in the GCache. cache: a GCache.

GCache* glib.Cache.Cache.getCacheStruct (  ) 

void* glib.Cache.Cache.getStruct (  )  [protected]

the main Gtk struct as a void*

void* glib.Cache.Cache.insert ( void *  key  ) 

Gets the value corresponding to the given key, creating it if necessary.

It first checks if the value already exists in the GCache, by using the key_equal_func function passed to g_cache_new(). If it does already exist it is returned, and its reference count is increased by one. If the value does not currently exist, if is created by calling the value_new_func. The key is duplicated by calling key_dup_func and the duplicated key and value are inserted into the GCache. cache: a GCache. key: a key describing a GCache object. Returns: a pointer to a GCache value.

void glib.Cache.Cache.keyForeach ( GHFunc  func,
void *  userData 
)

Calls the given function for each of the keys in the GCache.

Note func is passed three parameters, the value and key of a cache entry and the user_data. The order of value and key is different from the order in which g_hash_table_foreach() passes key-value pairs to its callback function ! cache: a GCache. func: the function to call with each GCache key. user_data: user data to pass to the function.

void glib.Cache.Cache.remove ( void *  value  ) 

Decreases the reference count of the given value.

If it drops to 0 then the value and its corresponding key are destroyed, using the value_destroy_func and key_destroy_func passed to g_cache_new(). cache: a GCache. value: the value to remove.

void glib.Cache.Cache.valueForeach ( GHFunc  func,
void *  userData 
)

Warning g_cache_value_foreach has been deprecated since version 2.10 and should not be used in newly-written code.

The reason is that it passes pointers to internal data structures to func; use g_cache_key_foreach() instead Calls the given function for each of the values in the GCache. cache: a GCache. func: the function to call with each GCache value. user_data: user data to pass to the function.


Member Data Documentation

GCache* glib.Cache.Cache.gCache [protected]

the main Gtk struct


SourceForge.net Logo DSource.org Logo digitalmars.com Logo