36
37
<th width="100%" align="center">GLib Reference Manual</th>
37
38
<td><a accesskey="n" href="glib-Memory-Allocators.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
39
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id3422567" class="shortcut">Top</a>
41
<a href="#id3422887" class="shortcut">Description</a></nobr></td></tr>
40
<tr><td colspan="5" class="shortcuts">
41
<a href="#glib-Caches.synopsis" class="shortcut">Top</a>
43
<a href="#glib-Caches.description" class="shortcut">Description</a>
43
46
<div class="refentry" lang="en">
44
47
<a name="glib-Caches"></a><div class="titlepage"></div>
45
48
<div class="refnamediv"><table width="100%"><tr>
48
<a name="id3422567"></a><span class="refentrytitle">Caches</span>
50
<p>Caches — caches allow sharing of complex data structures to save resources</p>
50
<h2><span class="refentrytitle"><a name="glib-Caches.top_of_page"></a>Caches</span></h2>
51
<p>Caches — caches allow sharing of complex data structures to save resources</p>
52
53
<td valign="top" align="right"></td>
53
54
</tr></table></div>
54
55
<div class="refsynopsisdiv">
56
<a name="glib-Caches.synopsis"></a><h2>Synopsis</h2>
56
57
<pre class="synopsis">
58
59
#include <glib.h>
61
<a class="link" href="glib-Caches.html#GCache">GCache</a>;
62
<a class="link" href="glib-Caches.html#GCache">GCache</a>* <a class="link" href="glib-Caches.html#g-cache-new">g_cache_new</a> (<a class="link" href="glib-Caches.html#GCacheNewFunc">GCacheNewFunc</a> value_new_func,
63
<a class="link" href="glib-Caches.html#GCacheDestroyFunc">GCacheDestroyFunc</a> value_destroy_func,
64
<a class="link" href="glib-Caches.html#GCacheDupFunc">GCacheDupFunc</a> key_dup_func,
65
<a class="link" href="glib-Caches.html#GCacheDestroyFunc">GCacheDestroyFunc</a> key_destroy_func,
66
<a class="link" href="glib-Hash-Tables.html#GHashFunc">GHashFunc</a> hash_key_func,
67
<a class="link" href="glib-Hash-Tables.html#GHashFunc">GHashFunc</a> hash_value_func,
68
<a class="link" href="glib-Hash-Tables.html#GEqualFunc">GEqualFunc</a> key_equal_func);
69
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> <a class="link" href="glib-Caches.html#g-cache-insert">g_cache_insert</a> (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache,
70
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> key);
71
void <a class="link" href="glib-Caches.html#g-cache-remove">g_cache_remove</a> (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache,
72
<a class="link" href="glib-Basic-Types.html#gconstpointer">gconstpointer</a> value);
73
void <a class="link" href="glib-Caches.html#g-cache-destroy">g_cache_destroy</a> (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache);
75
void <a class="link" href="glib-Caches.html#g-cache-key-foreach">g_cache_key_foreach</a> (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache,
76
<a class="link" href="glib-Hash-Tables.html#GHFunc">GHFunc</a> func,
77
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> user_data);
78
void <a class="link" href="glib-Caches.html#g-cache-value-foreach">g_cache_value_foreach</a> (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache,
79
<a class="link" href="glib-Hash-Tables.html#GHFunc">GHFunc</a> func,
80
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> user_data);
82
void (<a class="link" href="glib-Caches.html#GCacheDestroyFunc">*GCacheDestroyFunc</a>) (<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> value);
83
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> (<a class="link" href="glib-Caches.html#GCacheDupFunc">*GCacheDupFunc</a>) (<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> value);
84
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> (<a class="link" href="glib-Caches.html#GCacheNewFunc">*GCacheNewFunc</a>) (<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> key);
61
<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a>;
62
<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a>* <a class="link" href="glib-Caches.html#g-cache-new" title="g_cache_new ()">g_cache_new</a> (<a class="link" href="glib-Caches.html#GCacheNewFunc" title="GCacheNewFunc ()">GCacheNewFunc</a> value_new_func,
63
<a class="link" href="glib-Caches.html#GCacheDestroyFunc" title="GCacheDestroyFunc ()">GCacheDestroyFunc</a> value_destroy_func,
64
<a class="link" href="glib-Caches.html#GCacheDupFunc" title="GCacheDupFunc ()">GCacheDupFunc</a> key_dup_func,
65
<a class="link" href="glib-Caches.html#GCacheDestroyFunc" title="GCacheDestroyFunc ()">GCacheDestroyFunc</a> key_destroy_func,
66
<a class="link" href="glib-Hash-Tables.html#GHashFunc" title="GHashFunc ()">GHashFunc</a> hash_key_func,
67
<a class="link" href="glib-Hash-Tables.html#GHashFunc" title="GHashFunc ()">GHashFunc</a> hash_value_func,
68
<a class="link" href="glib-Hash-Tables.html#GEqualFunc" title="GEqualFunc ()">GEqualFunc</a> key_equal_func);
69
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> <a class="link" href="glib-Caches.html#g-cache-insert" title="g_cache_insert ()">g_cache_insert</a> (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache,
70
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> key);
71
void <a class="link" href="glib-Caches.html#g-cache-remove" title="g_cache_remove ()">g_cache_remove</a> (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache,
72
<a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer">gconstpointer</a> value);
73
void <a class="link" href="glib-Caches.html#g-cache-destroy" title="g_cache_destroy ()">g_cache_destroy</a> (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache);
75
void <a class="link" href="glib-Caches.html#g-cache-key-foreach" title="g_cache_key_foreach ()">g_cache_key_foreach</a> (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache,
76
<a class="link" href="glib-Hash-Tables.html#GHFunc" title="GHFunc ()">GHFunc</a> func,
77
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> user_data);
78
void <a class="link" href="glib-Caches.html#g-cache-value-foreach" title="g_cache_value_foreach ()">g_cache_value_foreach</a> (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache,
79
<a class="link" href="glib-Hash-Tables.html#GHFunc" title="GHFunc ()">GHFunc</a> func,
80
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> user_data);
82
void (<a class="link" href="glib-Caches.html#GCacheDestroyFunc" title="GCacheDestroyFunc ()">*GCacheDestroyFunc</a>) (<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> value);
83
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> (<a class="link" href="glib-Caches.html#GCacheDupFunc" title="GCacheDupFunc ()">*GCacheDupFunc</a>) (<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> value);
84
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> (<a class="link" href="glib-Caches.html#GCacheNewFunc" title="GCacheNewFunc ()">*GCacheNewFunc</a>) (<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> key);
87
87
<div class="refsect1" lang="en">
88
<a name="id3422887"></a><h2>Description</h2>
88
<a name="glib-Caches.description"></a><h2>Description</h2>
90
A <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> allows sharing of complex data structures, in order to save
90
A <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> allows sharing of complex data structures, in order to save
94
94
GTK+ uses caches for <span class="type">GtkStyles</span> and <span class="type">GdkGCs</span>. These consume a lot of
95
resources, so a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> is used to see if a <a
95
resources, so a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> is used to see if a <a
96
96
href="/usr/share/gtk-doc/html/gtk/GtkStyle.html"
97
97
><span class="type">GtkStyle</span></a> or <a
98
98
href="/usr/share/gtk-doc/html/gdk/gdk-Graphics-Contexts.html#GdkGC"
101
101
object is used instead of creating a new one.
104
<a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> uses keys and values.
105
A <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> key describes the properties of a particular resource.
106
A <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value is the actual resource.
104
<a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> uses keys and values.
105
A <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> key describes the properties of a particular resource.
106
A <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> value is the actual resource.
109
109
<div class="refsect1" lang="en">
110
<a name="id3422990"></a><h2>Details</h2>
110
<a name="glib-Caches.details"></a><h2>Details</h2>
111
111
<div class="refsect2" lang="en">
112
<a name="id3423000"></a><h3>
113
<a name="GCache"></a>GCache</h3>
114
<a class="indexterm" name="id3423013"></a><pre class="programlisting">typedef struct _GCache GCache;</pre>
112
<a name="GCache"></a><h3>GCache</h3>
113
<pre class="programlisting">typedef struct _GCache GCache;</pre>
116
The <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> struct is an opaque data structure containing information about
117
a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>. It should only be accessed via the following functions.
115
The <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> struct is an opaque data structure containing information about
116
a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>. It should only be accessed via the following functions.
121
120
<div class="refsect2" lang="en">
122
<a name="id3423046"></a><h3>
123
<a name="g-cache-new"></a>g_cache_new ()</h3>
124
<a class="indexterm" name="id3423058"></a><pre class="programlisting"><a class="link" href="glib-Caches.html#GCache">GCache</a>* g_cache_new (<a class="link" href="glib-Caches.html#GCacheNewFunc">GCacheNewFunc</a> value_new_func,
125
<a class="link" href="glib-Caches.html#GCacheDestroyFunc">GCacheDestroyFunc</a> value_destroy_func,
126
<a class="link" href="glib-Caches.html#GCacheDupFunc">GCacheDupFunc</a> key_dup_func,
127
<a class="link" href="glib-Caches.html#GCacheDestroyFunc">GCacheDestroyFunc</a> key_destroy_func,
128
<a class="link" href="glib-Hash-Tables.html#GHashFunc">GHashFunc</a> hash_key_func,
129
<a class="link" href="glib-Hash-Tables.html#GHashFunc">GHashFunc</a> hash_value_func,
130
<a class="link" href="glib-Hash-Tables.html#GEqualFunc">GEqualFunc</a> key_equal_func);</pre>
121
<a name="g-cache-new"></a><h3>g_cache_new ()</h3>
122
<pre class="programlisting"><a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a>* g_cache_new (<a class="link" href="glib-Caches.html#GCacheNewFunc" title="GCacheNewFunc ()">GCacheNewFunc</a> value_new_func,
123
<a class="link" href="glib-Caches.html#GCacheDestroyFunc" title="GCacheDestroyFunc ()">GCacheDestroyFunc</a> value_destroy_func,
124
<a class="link" href="glib-Caches.html#GCacheDupFunc" title="GCacheDupFunc ()">GCacheDupFunc</a> key_dup_func,
125
<a class="link" href="glib-Caches.html#GCacheDestroyFunc" title="GCacheDestroyFunc ()">GCacheDestroyFunc</a> key_destroy_func,
126
<a class="link" href="glib-Hash-Tables.html#GHashFunc" title="GHashFunc ()">GHashFunc</a> hash_key_func,
127
<a class="link" href="glib-Hash-Tables.html#GHashFunc" title="GHashFunc ()">GHashFunc</a> hash_value_func,
128
<a class="link" href="glib-Hash-Tables.html#GEqualFunc" title="GEqualFunc ()">GEqualFunc</a> key_equal_func);</pre>
132
Creates a new <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
130
Creates a new <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
134
132
<div class="variablelist"><table border="0">
135
133
<col align="left" valign="top">
138
<td><p><span class="term"><em class="parameter"><code>value_new_func</code></em> :</span></p></td>
136
<td><p><span class="term"><em class="parameter"><code>value_new_func</code></em> :</span></p></td>
139
137
<td>a function to create a new object given a key.
140
This is called by <a class="link" href="glib-Caches.html#g-cache-insert"><code class="function">g_cache_insert()</code></a> if an object with the given key
138
This is called by <a class="link" href="glib-Caches.html#g-cache-insert" title="g_cache_insert ()"><code class="function">g_cache_insert()</code></a> if an object with the given key
141
139
does not already exist.
145
<td><p><span class="term"><em class="parameter"><code>value_destroy_func</code></em> :</span></p></td>
143
<td><p><span class="term"><em class="parameter"><code>value_destroy_func</code></em> :</span></p></td>
146
144
<td>a function to destroy an object. It is
147
called by <a class="link" href="glib-Caches.html#g-cache-remove"><code class="function">g_cache_remove()</code></a> when the object is no longer needed (i.e. its
145
called by <a class="link" href="glib-Caches.html#g-cache-remove" title="g_cache_remove ()"><code class="function">g_cache_remove()</code></a> when the object is no longer needed (i.e. its
148
146
reference count drops to 0).
152
<td><p><span class="term"><em class="parameter"><code>key_dup_func</code></em> :</span></p></td>
150
<td><p><span class="term"><em class="parameter"><code>key_dup_func</code></em> :</span></p></td>
153
151
<td>a function to copy a key. It is called by
154
<a class="link" href="glib-Caches.html#g-cache-insert"><code class="function">g_cache_insert()</code></a> if the key does not already exist in the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
152
<a class="link" href="glib-Caches.html#g-cache-insert" title="g_cache_insert ()"><code class="function">g_cache_insert()</code></a> if the key does not already exist in the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
158
<td><p><span class="term"><em class="parameter"><code>key_destroy_func</code></em> :</span></p></td>
156
<td><p><span class="term"><em class="parameter"><code>key_destroy_func</code></em> :</span></p></td>
159
157
<td>a function to destroy a key. It is
160
called by <a class="link" href="glib-Caches.html#g-cache-remove"><code class="function">g_cache_remove()</code></a> when the object is no longer needed (i.e. its
158
called by <a class="link" href="glib-Caches.html#g-cache-remove" title="g_cache_remove ()"><code class="function">g_cache_remove()</code></a> when the object is no longer needed (i.e. its
161
159
reference count drops to 0).
165
<td><p><span class="term"><em class="parameter"><code>hash_key_func</code></em> :</span></p></td>
163
<td><p><span class="term"><em class="parameter"><code>hash_key_func</code></em> :</span></p></td>
166
164
<td>a function to create a hash value from a key.
170
<td><p><span class="term"><em class="parameter"><code>hash_value_func</code></em> :</span></p></td>
168
<td><p><span class="term"><em class="parameter"><code>hash_value_func</code></em> :</span></p></td>
171
169
<td>a function to create a hash value from a value.
175
<td><p><span class="term"><em class="parameter"><code>key_equal_func</code></em> :</span></p></td>
176
<td>a function to compare two keys. It should return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if
173
<td><p><span class="term"><em class="parameter"><code>key_equal_func</code></em> :</span></p></td>
174
<td>a function to compare two keys. It should return <a class="link" href="glib-Standard-Macros.html#TRUE--CAPS" title="TRUE"><code class="literal">TRUE</code></a> if
177
175
the two keys are equivalent.
181
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
182
<td>a new <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
179
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
180
<td>a new <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
191
187
<div class="refsect2" lang="en">
192
<a name="id3423334"></a><h3>
193
<a name="g-cache-insert"></a>g_cache_insert ()</h3>
194
<a class="indexterm" name="id3423347"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> g_cache_insert (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache,
195
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> key);</pre>
188
<a name="g-cache-insert"></a><h3>g_cache_insert ()</h3>
189
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> g_cache_insert (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache,
190
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> key);</pre>
197
192
Gets the value corresponding to the given key, creating it if necessary.
198
It first checks if the value already exists in the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>, by using
199
the <em class="parameter"><code>key_equal_func</code></em> function passed to <a class="link" href="glib-Caches.html#g-cache-new"><code class="function">g_cache_new()</code></a>.
193
It first checks if the value already exists in the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>, by using
194
the <em class="parameter"><code>key_equal_func</code></em> function passed to <a class="link" href="glib-Caches.html#g-cache-new" title="g_cache_new ()"><code class="function">g_cache_new()</code></a>.
200
195
If it does already exist it is returned, and its reference count is increased
202
197
If the value does not currently exist, if is created by calling the
203
198
<em class="parameter"><code>value_new_func</code></em>. The key is duplicated by calling
204
199
<em class="parameter"><code>key_dup_func</code></em> and the duplicated key and value are inserted
205
into the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
200
into the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
207
202
<div class="variablelist"><table border="0">
208
203
<col align="left" valign="top">
211
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
212
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
216
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
217
<td>a key describing a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> object.
221
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
222
<td>a pointer to a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value.
206
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
207
<td>a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
211
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
212
<td>a key describing a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> object.
216
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
217
<td>a pointer to a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> value.
231
224
<div class="refsect2" lang="en">
232
<a name="id3423499"></a><h3>
233
<a name="g-cache-remove"></a>g_cache_remove ()</h3>
234
<a class="indexterm" name="id3423512"></a><pre class="programlisting">void g_cache_remove (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache,
235
<a class="link" href="glib-Basic-Types.html#gconstpointer">gconstpointer</a> value);</pre>
225
<a name="g-cache-remove"></a><h3>g_cache_remove ()</h3>
226
<pre class="programlisting">void g_cache_remove (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache,
227
<a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer">gconstpointer</a> value);</pre>
237
229
Decreases the reference count of the given value.
238
230
If it drops to 0 then the value and its corresponding key are destroyed,
239
using the <em class="parameter"><code>value_destroy_func</code></em> and <em class="parameter"><code>key_destroy_func</code></em> passed to <a class="link" href="glib-Caches.html#g-cache-new"><code class="function">g_cache_new()</code></a>.
231
using the <em class="parameter"><code>value_destroy_func</code></em> and <em class="parameter"><code>key_destroy_func</code></em> passed to <a class="link" href="glib-Caches.html#g-cache-new" title="g_cache_new ()"><code class="function">g_cache_new()</code></a>.
241
233
<div class="variablelist"><table border="0">
242
234
<col align="left" valign="top">
245
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
246
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
237
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
238
<td>a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
250
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
242
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
251
243
<td>the value to remove.
260
250
<div class="refsect2" lang="en">
261
<a name="id3423613"></a><h3>
262
<a name="g-cache-destroy"></a>g_cache_destroy ()</h3>
263
<a class="indexterm" name="id3423626"></a><pre class="programlisting">void g_cache_destroy (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache);</pre>
251
<a name="g-cache-destroy"></a><h3>g_cache_destroy ()</h3>
252
<pre class="programlisting">void g_cache_destroy (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache);</pre>
265
Frees the memory allocated for the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
254
Frees the memory allocated for the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
268
257
Note that it does not destroy the keys and values which were contained in the
269
<a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
258
<a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
271
260
<div class="variablelist"><table border="0">
272
261
<col align="left" valign="top">
274
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
275
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
263
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
264
<td>a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
283
270
<div class="refsect2" lang="en">
284
<a name="id3423701"></a><h3>
285
<a name="g-cache-key-foreach"></a>g_cache_key_foreach ()</h3>
286
<a class="indexterm" name="id3423715"></a><pre class="programlisting">void g_cache_key_foreach (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache,
287
<a class="link" href="glib-Hash-Tables.html#GHFunc">GHFunc</a> func,
288
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> user_data);</pre>
271
<a name="g-cache-key-foreach"></a><h3>g_cache_key_foreach ()</h3>
272
<pre class="programlisting">void g_cache_key_foreach (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache,
273
<a class="link" href="glib-Hash-Tables.html#GHFunc" title="GHFunc ()">GHFunc</a> func,
274
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> user_data);</pre>
290
Calls the given function for each of the keys in the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
276
Calls the given function for each of the keys in the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
292
278
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
293
279
<h3 class="title">Note</h3>
294
280
<p><em class="parameter"><code>func</code></em> is passed three parameters, the value and key of a
295
281
cache entry and the <em class="parameter"><code>user_data</code></em>. The order of value and key is different
296
from the order in which <a class="link" href="glib-Hash-Tables.html#g-hash-table-foreach"><code class="function">g_hash_table_foreach()</code></a> passes key-value pairs
282
from the order in which <a class="link" href="glib-Hash-Tables.html#g-hash-table-foreach" title="g_hash_table_foreach ()"><code class="function">g_hash_table_foreach()</code></a> passes key-value pairs
297
283
to its callback function !
324
308
<div class="refsect2" lang="en">
325
<a name="id3423858"></a><h3>
326
<a name="g-cache-value-foreach"></a>g_cache_value_foreach ()</h3>
327
<a class="indexterm" name="id3423873"></a><pre class="programlisting">void g_cache_value_foreach (<a class="link" href="glib-Caches.html#GCache">GCache</a> *cache,
328
<a class="link" href="glib-Hash-Tables.html#GHFunc">GHFunc</a> func,
329
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> user_data);</pre>
309
<a name="g-cache-value-foreach"></a><h3>g_cache_value_foreach ()</h3>
310
<pre class="programlisting">void g_cache_value_foreach (<a class="link" href="glib-Caches.html#GCache" title="GCache">GCache</a> *cache,
311
<a class="link" href="glib-Hash-Tables.html#GHFunc" title="GHFunc ()">GHFunc</a> func,
312
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> user_data);</pre>
330
313
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
331
314
<h3 class="title">Warning</h3>
332
<p><code class="literal">g_cache_value_foreach</code> 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
333
structures to <em class="parameter"><code>func</code></em>; use <a class="link" href="glib-Caches.html#g-cache-key-foreach"><code class="function">g_cache_key_foreach()</code></a> instead</p>
315
<p><code class="literal">g_cache_value_foreach</code> 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
316
structures to <em class="parameter"><code>func</code></em>; use <a class="link" href="glib-Caches.html#g-cache-key-foreach" title="g_cache_key_foreach ()"><code class="function">g_cache_key_foreach()</code></a> instead</p>
336
Calls the given function for each of the values in the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
319
Calls the given function for each of the values in the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
338
321
<div class="variablelist"><table border="0">
339
322
<col align="left" valign="top">
342
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
343
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
347
<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
348
<td>the function to call with each <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value.
352
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
325
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
326
<td>a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
330
<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
331
<td>the function to call with each <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> value.
335
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
353
336
<td>user data to pass to the function.
360
343
<div class="refsect2" lang="en">
361
<a name="id3424019"></a><h3>
362
<a name="GCacheDestroyFunc"></a>GCacheDestroyFunc ()</h3>
363
<a class="indexterm" name="id3424032"></a><pre class="programlisting">void (*GCacheDestroyFunc) (<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> value);</pre>
344
<a name="GCacheDestroyFunc"></a><h3>GCacheDestroyFunc ()</h3>
345
<pre class="programlisting">void (*GCacheDestroyFunc) (<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> value);</pre>
365
347
Specifies the type of the <em class="parameter"><code>value_destroy_func</code></em> and <em class="parameter"><code>key_destroy_func</code></em> functions
366
passed to <a class="link" href="glib-Caches.html#g-cache-new"><code class="function">g_cache_new()</code></a>.
367
The functions are passed a pointer to the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> key or <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value and
348
passed to <a class="link" href="glib-Caches.html#g-cache-new" title="g_cache_new ()"><code class="function">g_cache_new()</code></a>.
349
The functions are passed a pointer to the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> key or <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> value and
368
350
should free any memory and other resources associated with it.
370
352
<div class="variablelist"><table border="0">
371
353
<col align="left" valign="top">
373
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
374
<td>the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value to destroy.
355
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
356
<td>the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> value to destroy.
382
362
<div class="refsect2" lang="en">
383
<a name="id3424128"></a><h3>
384
<a name="GCacheDupFunc"></a>GCacheDupFunc ()</h3>
385
<a class="indexterm" name="id3424140"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> (*GCacheDupFunc) (<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> value);</pre>
363
<a name="GCacheDupFunc"></a><h3>GCacheDupFunc ()</h3>
364
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> (*GCacheDupFunc) (<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> value);</pre>
387
Specifies the type of the <em class="parameter"><code>key_dup_func</code></em> function passed to <a class="link" href="glib-Caches.html#g-cache-new"><code class="function">g_cache_new()</code></a>.
366
Specifies the type of the <em class="parameter"><code>key_dup_func</code></em> function passed to <a class="link" href="glib-Caches.html#g-cache-new" title="g_cache_new ()"><code class="function">g_cache_new()</code></a>.
388
367
The function is passed a key (<span class="emphasis"><em>not</em></span> a value as the prototype implies) and
389
368
should return a duplicate of the key.
410
387
<div class="refsect2" lang="en">
411
<a name="id3424247"></a><h3>
412
<a name="GCacheNewFunc"></a>GCacheNewFunc ()</h3>
413
<a class="indexterm" name="id3424259"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> (*GCacheNewFunc) (<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> key);</pre>
388
<a name="GCacheNewFunc"></a><h3>GCacheNewFunc ()</h3>
389
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> (*GCacheNewFunc) (<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> key);</pre>
415
Specifies the type of the <em class="parameter"><code>value_new_func</code></em> function passed to <a class="link" href="glib-Caches.html#g-cache-new"><code class="function">g_cache_new()</code></a>.
416
It is passed a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> key and should create the value corresponding to the
391
Specifies the type of the <em class="parameter"><code>value_new_func</code></em> function passed to <a class="link" href="glib-Caches.html#g-cache-new" title="g_cache_new ()"><code class="function">g_cache_new()</code></a>.
392
It is passed a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> key and should create the value corresponding to the
419
395
<div class="variablelist"><table border="0">
420
396
<col align="left" valign="top">
423
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
424
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> key.
399
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
400
<td>a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> key.
428
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
429
<td>a new <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value corresponding to the key.
404
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
405
<td>a new <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> value corresponding to the key.
438
<div class="refsect1" lang="en">
439
<a name="id3424359"></a><div class="refsect2" lang="en"><a name="id3424360"></a></div>
441
<div class="refsect2" lang="en"><a name="id3424361"></a></div>
415
Generated by GTK-Doc V1.11</div>