~ubuntu-branches/debian/squeeze/glib2.0/squeeze

« back to all changes in this revision

Viewing changes to docs/reference/glib/html/glib-Caches.html

  • Committer: Bazaar Package Importer
  • Author(s): Gustavo Noronha Silva
  • Date: 2009-02-15 13:00:43 UTC
  • mfrom: (1.3.1 upstream) (69.1.10 intrepid)
  • Revision ID: james.westby@ubuntu.com-20090215130043-q47fbt3owmt42m2f
Tags: 2.18.4-2
* Release to unstable
* debian/rules:
- bump SHVER, since we are already forcing a 2.18.0 dependecy on the
  symbols introduced in the development versions
* debian/control.in:
- added Homepage and Vcs-* control fields

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
<html>
3
3
<head>
4
 
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
<title>Caches</title>
6
 
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
7
 
<link rel="start" href="index.html" title="GLib Reference Manual">
 
6
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
 
7
<link rel="home" href="index.html" title="GLib Reference Manual">
8
8
<link rel="up" href="glib-data-types.html" title="GLib Data Types">
9
9
<link rel="prev" href="glib-Relations-and-Tuples.html" title="Relations and Tuples">
10
10
<link rel="next" href="glib-Memory-Allocators.html" title="Memory Allocators">
11
 
<meta name="generator" content="GTK-Doc V1.9 (XML mode)">
 
11
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
13
13
<link rel="chapter" href="glib.html" title="GLib Overview">
14
14
<link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
26
26
<link rel="index" href="ix08.html" title="Index of new symbols in 2.12">
27
27
<link rel="index" href="ix09.html" title="Index of new symbols in 2.14">
28
28
<link rel="index" href="ix10.html" title="Index of new symbols in 2.16">
 
29
<link rel="index" href="ix11.html" title="Index of new symbols in 2.18">
29
30
</head>
30
31
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
31
32
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
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>
38
39
</tr>
39
 
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id3422567" class="shortcut">Top</a>
40
 
                  &#160;|&#160;
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>
 
42
                 | 
 
43
                <a href="#glib-Caches.description" class="shortcut">Description</a>
 
44
</td></tr>
42
45
</table>
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>
46
49
<td valign="top">
47
 
<h2>
48
 
<a name="id3422567"></a><span class="refentrytitle">Caches</span>
49
 
</h2>
50
 
<p>Caches &#8212; 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>
51
52
</td>
52
53
<td valign="top" align="right"></td>
53
54
</tr></table></div>
54
55
<div class="refsynopsisdiv">
55
 
<h2>Synopsis</h2>
 
56
<a name="glib-Caches.synopsis"></a><h2>Synopsis</h2>
56
57
<pre class="synopsis">
57
58
 
58
59
#include &lt;glib.h&gt;
59
60
 
60
 
 
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);
74
 
 
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);
81
 
 
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);
 
74
 
 
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);
 
81
 
 
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);
85
85
</pre>
86
86
</div>
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>
89
89
<p>
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
91
91
system resources.
92
92
</p>
93
93
<p>
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.
102
102
</p>
103
103
<p>
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.
107
107
</p>
108
108
</div>
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>
115
114
<p>
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.
118
117
</p>
119
118
</div>
120
119
<hr>
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>
131
129
<p>
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>.
133
131
</p>
134
132
<div class="variablelist"><table border="0">
135
133
<col align="left" valign="top">
136
134
<tbody>
137
135
<tr>
138
 
<td><p><span class="term"><em class="parameter"><code>value_new_func</code></em>&#160;:</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.
142
140
</td>
143
141
</tr>
144
142
<tr>
145
 
<td><p><span class="term"><em class="parameter"><code>value_destroy_func</code></em>&#160;:</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).
149
147
</td>
150
148
</tr>
151
149
<tr>
152
 
<td><p><span class="term"><em class="parameter"><code>key_dup_func</code></em>&#160;:</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>.
155
153
</td>
156
154
</tr>
157
155
<tr>
158
 
<td><p><span class="term"><em class="parameter"><code>key_destroy_func</code></em>&#160;:</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).
162
160
</td>
163
161
</tr>
164
162
<tr>
165
 
<td><p><span class="term"><em class="parameter"><code>hash_key_func</code></em>&#160;:</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.
167
165
</td>
168
166
</tr>
169
167
<tr>
170
 
<td><p><span class="term"><em class="parameter"><code>hash_value_func</code></em>&#160;:</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.
172
170
</td>
173
171
</tr>
174
172
<tr>
175
 
<td><p><span class="term"><em class="parameter"><code>key_equal_func</code></em>&#160;:</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.
178
176
</td>
179
177
</tr>
180
178
<tr>
181
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></p></td>
182
 
<td>a new <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
183
 
 
184
 
 
 
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>.
185
181
</td>
186
182
</tr>
187
183
</tbody>
189
185
</div>
190
186
<hr>
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>
196
191
<p>
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
201
196
by one.
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>.
206
201
</p>
207
202
<div class="variablelist"><table border="0">
208
203
<col align="left" valign="top">
209
204
<tbody>
210
205
<tr>
211
 
<td><p><span class="term"><em class="parameter"><code>cache</code></em>&#160;:</span></p></td>
212
 
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
213
 
</td>
214
 
</tr>
215
 
<tr>
216
 
<td><p><span class="term"><em class="parameter"><code>key</code></em>&#160;:</span></p></td>
217
 
<td>a key describing a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> object.
218
 
</td>
219
 
</tr>
220
 
<tr>
221
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></p></td>
222
 
<td>a pointer to a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value.
223
 
 
224
 
 
 
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>.
 
208
</td>
 
209
</tr>
 
210
<tr>
 
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.
 
213
</td>
 
214
</tr>
 
215
<tr>
 
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.
225
218
</td>
226
219
</tr>
227
220
</tbody>
229
222
</div>
230
223
<hr>
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>
236
228
<p>
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>.
240
232
</p>
241
233
<div class="variablelist"><table border="0">
242
234
<col align="left" valign="top">
243
235
<tbody>
244
236
<tr>
245
 
<td><p><span class="term"><em class="parameter"><code>cache</code></em>&#160;:</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>.
247
239
</td>
248
240
</tr>
249
241
<tr>
250
 
<td><p><span class="term"><em class="parameter"><code>value</code></em>&#160;:</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.
252
 
 
253
 
 
254
244
</td>
255
245
</tr>
256
246
</tbody>
258
248
</div>
259
249
<hr>
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>
264
253
<p>
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>.
266
255
</p>
267
256
<p>
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>.
270
259
</p>
271
260
<div class="variablelist"><table border="0">
272
261
<col align="left" valign="top">
273
262
<tbody><tr>
274
 
<td><p><span class="term"><em class="parameter"><code>cache</code></em>&#160;:</span></p></td>
275
 
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
276
 
 
277
 
 
 
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>.
278
265
</td>
279
266
</tr></tbody>
280
267
</table></div>
281
268
</div>
282
269
<hr>
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>
289
275
<p>
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>.
291
277
</p>
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 !
298
284
</p>
299
285
</div>
301
287
<col align="left" valign="top">
302
288
<tbody>
303
289
<tr>
304
 
<td><p><span class="term"><em class="parameter"><code>cache</code></em>&#160;:</span></p></td>
305
 
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
306
 
</td>
307
 
</tr>
308
 
<tr>
309
 
<td><p><span class="term"><em class="parameter"><code>func</code></em>&#160;:</span></p></td>
310
 
<td>the function to call with each <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> key.
311
 
</td>
312
 
</tr>
313
 
<tr>
314
 
<td><p><span class="term"><em class="parameter"><code>user_data</code></em>&#160;:</span></p></td>
 
290
<td><p><span class="term"><em class="parameter"><code>cache</code></em> :</span></p></td>
 
291
<td>a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a>.
 
292
</td>
 
293
</tr>
 
294
<tr>
 
295
<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
 
296
<td>the function to call with each <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> key.
 
297
</td>
 
298
</tr>
 
299
<tr>
 
300
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
315
301
<td>user data to pass to the function.
316
 
 
317
 
 
318
302
</td>
319
303
</tr>
320
304
</tbody>
322
306
</div>
323
307
<hr>
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>
334
317
</div>
335
318
<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>.
337
320
</p>
338
321
<div class="variablelist"><table border="0">
339
322
<col align="left" valign="top">
340
323
<tbody>
341
324
<tr>
342
 
<td><p><span class="term"><em class="parameter"><code>cache</code></em>&#160;:</span></p></td>
343
 
<td>a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a>.
344
 
</td>
345
 
</tr>
346
 
<tr>
347
 
<td><p><span class="term"><em class="parameter"><code>func</code></em>&#160;:</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.
349
 
</td>
350
 
</tr>
351
 
<tr>
352
 
<td><p><span class="term"><em class="parameter"><code>user_data</code></em>&#160;:</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>.
 
327
</td>
 
328
</tr>
 
329
<tr>
 
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.
 
332
</td>
 
333
</tr>
 
334
<tr>
 
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.
354
337
</td>
355
338
</tr>
358
341
</div>
359
342
<hr>
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>
364
346
<p>
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.
369
351
</p>
370
352
<div class="variablelist"><table border="0">
371
353
<col align="left" valign="top">
372
354
<tbody><tr>
373
 
<td><p><span class="term"><em class="parameter"><code>value</code></em>&#160;:</span></p></td>
374
 
<td>the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value to destroy.
375
 
 
376
 
 
 
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.
377
357
</td>
378
358
</tr></tbody>
379
359
</table></div>
380
360
</div>
381
361
<hr>
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>
386
365
<p>
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.
390
369
</p>
392
371
<col align="left" valign="top">
393
372
<tbody>
394
373
<tr>
395
 
<td><p><span class="term"><em class="parameter"><code>value</code></em>&#160;:</span></p></td>
396
 
<td>the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> key to destroy (<span class="emphasis"><em>not</em></span> a <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> value as it seems).
 
374
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
 
375
<td>the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> key to destroy (<span class="emphasis"><em>not</em></span> a <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> value as it seems).
397
376
</td>
398
377
</tr>
399
378
<tr>
400
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></p></td>
401
 
<td>a copy of the <a class="link" href="glib-Caches.html#GCache"><span class="type">GCache</span></a> key.
402
 
 
403
 
 
 
379
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
380
<td>a copy of the <a class="link" href="glib-Caches.html#GCache" title="GCache"><span class="type">GCache</span></a> key.
404
381
</td>
405
382
</tr>
406
383
</tbody>
408
385
</div>
409
386
<hr>
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>
414
390
<p>
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
417
393
key.
418
394
</p>
419
395
<div class="variablelist"><table border="0">
420
396
<col align="left" valign="top">
421
397
<tbody>
422
398
<tr>
423
 
<td><p><span class="term"><em class="parameter"><code>key</code></em>&#160;:</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.
425
401
</td>
426
402
</tr>
427
403
<tr>
428
 
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</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.
430
 
 
431
 
 
 
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.
432
406
</td>
433
407
</tr>
434
408
</tbody>
435
409
</table></div>
436
410
</div>
437
411
</div>
438
 
<div class="refsect1" lang="en">
439
 
<a name="id3424359"></a><div class="refsect2" lang="en"><a name="id3424360"></a></div>
 
412
</div>
 
413
<div class="footer">
440
414
<hr>
441
 
<div class="refsect2" lang="en"><a name="id3424361"></a></div>
442
 
</div>
443
 
</div>
 
415
          Generated by GTK-Doc V1.11</div>
444
416
</body>
445
417
</html>