~ubuntu-branches/ubuntu/utopic/glib2.0/utopic

« back to all changes in this revision

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

Tags: upstream-2.12.12
ImportĀ upstreamĀ versionĀ 2.12.12

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
2
<html>
 
3
<head>
 
4
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 
5
<title>Quarks</title>
 
6
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
 
7
<link rel="start" href="index.html" title="GLib Reference Manual">
 
8
<link rel="up" href="glib-data-types.html" title="GLib Data Types">
 
9
<link rel="prev" href="glib-N-ary-Trees.html" title="N-ary Trees">
 
10
<link rel="next" href="glib-Keyed-Data-Lists.html" title="Keyed Data Lists">
 
11
<meta name="generator" content="GTK-Doc V1.7 (XML mode)">
 
12
<link rel="stylesheet" href="style.css" type="text/css">
 
13
<link rel="chapter" href="glib.html" title="GLib Overview">
 
14
<link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
 
15
<link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
 
16
<link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
 
17
<link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
 
18
<link rel="chapter" href="tools.html" title="GLib Tools">
 
19
<link rel="index" href="ix01.html" title="Index">
 
20
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
 
21
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
 
22
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
 
23
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
 
24
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
 
25
<link rel="index" href="ix07.html" title="Index of new symbols in 2.10">
 
26
<link rel="index" href="ix08.html" title="Index of new symbols in 2.12">
 
27
</head>
 
28
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 
29
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 
30
<tr valign="middle">
 
31
<td><a accesskey="p" href="glib-N-ary-Trees.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 
32
<td><a accesskey="u" href="glib-data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 
33
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 
34
<th width="100%" align="center">GLib Reference Manual</th>
 
35
<td><a accesskey="n" href="glib-Keyed-Data-Lists.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 
36
</tr>
 
37
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id3137609" class="shortcut">Top</a>
 
38
                  &#160;|&#160;
 
39
                  <a href="#id3137766" class="shortcut">Description</a></nobr></td></tr>
 
40
</table>
 
41
<div class="refentry" lang="en">
 
42
<a name="glib-Quarks"></a><div class="titlepage"></div>
 
43
<div class="refnamediv"><table width="100%"><tr>
 
44
<td valign="top">
 
45
<h2>
 
46
<a name="id3137609"></a><span class="refentrytitle">Quarks</span>
 
47
</h2>
 
48
<p>Quarks &#8212; a 2-way association between a string and a unique integer identifier.</p>
 
49
</td>
 
50
<td valign="top" align="right"></td>
 
51
</tr></table></div>
 
52
<div class="refsynopsisdiv">
 
53
<h2>Synopsis</h2>
 
54
<pre class="synopsis">
 
55
 
 
56
#include &lt;glib.h&gt;
 
57
 
 
58
 
 
59
typedef             <a href="glib-Quarks.html#GQuark">GQuark</a>;
 
60
<a href="glib-Quarks.html#GQuark">GQuark</a>              <a href="glib-Quarks.html#g-quark-from-string">g_quark_from_string</a>                 (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);
 
61
<a href="glib-Quarks.html#GQuark">GQuark</a>              <a href="glib-Quarks.html#g-quark-from-static-string">g_quark_from_static_string</a>          (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);
 
62
const <a href="glib-Basic-Types.html#gchar">gchar</a>*        <a href="glib-Quarks.html#g-quark-to-string">g_quark_to_string</a>                   (<a href="glib-Quarks.html#GQuark">GQuark</a> quark);
 
63
<a href="glib-Quarks.html#GQuark">GQuark</a>              <a href="glib-Quarks.html#g-quark-try-string">g_quark_try_string</a>                  (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);
 
64
const <a href="glib-Basic-Types.html#gchar">gchar</a>*        <a href="glib-Quarks.html#g-intern-string">g_intern_string</a>                     (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);
 
65
const <a href="glib-Basic-Types.html#gchar">gchar</a>*        <a href="glib-Quarks.html#g-intern-static-string">g_intern_static_string</a>              (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);
 
66
</pre>
 
67
</div>
 
68
<div class="refsect1" lang="en">
 
69
<a name="id3137766"></a><h2>Description</h2>
 
70
<p>
 
71
Quarks are associations between strings and integer identifiers.
 
72
Given either the string or the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifier it is possible to
 
73
retrieve the other.
 
74
</p>
 
75
<p>
 
76
Quarks are used for both
 
77
Datasets and
 
78
Keyed Data Lists.
 
79
</p>
 
80
<p>
 
81
To create a new quark from a string, use <a href="glib-Quarks.html#g-quark-from-string"><code class="function">g_quark_from_string()</code></a> or
 
82
<a href="glib-Quarks.html#g-quark-from-static-string"><code class="function">g_quark_from_static_string()</code></a>.
 
83
</p>
 
84
<p>
 
85
To find the string corresponding to a given <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>, use <a href="glib-Quarks.html#g-quark-to-string"><code class="function">g_quark_to_string()</code></a>.
 
86
</p>
 
87
<p>
 
88
To find the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> corresponding to a given string, use <a href="glib-Quarks.html#g-quark-try-string"><code class="function">g_quark_try_string()</code></a>.
 
89
</p>
 
90
<p>
 
91
Another use for the string pool maintained for the quark functions is string
 
92
interning, using <a href="glib-Quarks.html#g-intern-string"><code class="function">g_intern_string()</code></a> or <a href="glib-Quarks.html#g-intern-static-string"><code class="function">g_intern_static_string()</code></a>. An interned string 
 
93
is a canonical representation for a string. One important advantage of interned strings 
 
94
is that they can be compared for equality by a simple pointer comparision, rather than 
 
95
using <code class="function">strcmp()</code>. 
 
96
</p>
 
97
</div>
 
98
<div class="refsect1" lang="en">
 
99
<a name="id3137922"></a><h2>Details</h2>
 
100
<div class="refsect2" lang="en">
 
101
<a name="id3137932"></a><h3>
 
102
<a name="GQuark"></a>GQuark</h3>
 
103
<a class="indexterm" name="id3137944"></a><pre class="programlisting">typedef guint32 GQuark;
 
104
</pre>
 
105
<p>
 
106
A GQuark is an integer which uniquely identifies a particular string.
 
107
</p>
 
108
</div>
 
109
<hr>
 
110
<div class="refsect2" lang="en">
 
111
<a name="id3137961"></a><h3>
 
112
<a name="g-quark-from-string"></a>g_quark_from_string ()</h3>
 
113
<a class="indexterm" name="id3137974"></a><pre class="programlisting"><a href="glib-Quarks.html#GQuark">GQuark</a>              g_quark_from_string                 (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);</pre>
 
114
<p>
 
115
Gets the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifying the given string.
 
116
If the string does not currently have an associated <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>, a new
 
117
<a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> is created, using a copy of the string.
 
118
</p>
 
119
<div class="variablelist"><table border="0">
 
120
<col align="left" valign="top">
 
121
<tbody>
 
122
<tr>
 
123
<td><span class="term"><em class="parameter"><code>string</code></em>&#160;:</span></td>
 
124
<td>a string.
 
125
</td>
 
126
</tr>
 
127
<tr>
 
128
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
129
<td>the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifying the string.
 
130
 
 
131
 
 
132
</td>
 
133
</tr>
 
134
</tbody>
 
135
</table></div>
 
136
</div>
 
137
<hr>
 
138
<div class="refsect2" lang="en">
 
139
<a name="id3138064"></a><h3>
 
140
<a name="g-quark-from-static-string"></a>g_quark_from_static_string ()</h3>
 
141
<a class="indexterm" name="id3138078"></a><pre class="programlisting"><a href="glib-Quarks.html#GQuark">GQuark</a>              g_quark_from_static_string          (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);</pre>
 
142
<p>
 
143
Gets the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifying the given (static) string.
 
144
If the string does not currently have an associated <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>, a new
 
145
<a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> is created, linked to the given string.
 
146
</p>
 
147
<p>
 
148
Note that this function is identical to <a href="glib-Quarks.html#g-quark-from-string"><code class="function">g_quark_from_string()</code></a> except
 
149
that if a new <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> is created the string itself is used rather than
 
150
a copy. This saves memory, but can only be used if the string will
 
151
<span class="emphasis"><em>always</em></span> exist. It can be used with statically
 
152
allocated strings in the main program, but not with statically 
 
153
allocated memory in dynamically loaded modules, if you expect to
 
154
ever unload the module again (e.g. do not use this function in
 
155
GTK+ theme engines).
 
156
</p>
 
157
<div class="variablelist"><table border="0">
 
158
<col align="left" valign="top">
 
159
<tbody>
 
160
<tr>
 
161
<td><span class="term"><em class="parameter"><code>string</code></em>&#160;:</span></td>
 
162
<td>a string.
 
163
</td>
 
164
</tr>
 
165
<tr>
 
166
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
167
<td>the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifying the string.
 
168
 
 
169
 
 
170
</td>
 
171
</tr>
 
172
</tbody>
 
173
</table></div>
 
174
</div>
 
175
<hr>
 
176
<div class="refsect2" lang="en">
 
177
<a name="id3138202"></a><h3>
 
178
<a name="g-quark-to-string"></a>g_quark_to_string ()</h3>
 
179
<a class="indexterm" name="id3138214"></a><pre class="programlisting">const <a href="glib-Basic-Types.html#gchar">gchar</a>*        g_quark_to_string                   (<a href="glib-Quarks.html#GQuark">GQuark</a> quark);</pre>
 
180
<p>
 
181
Gets the string associated with the given <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>.
 
182
</p>
 
183
<div class="variablelist"><table border="0">
 
184
<col align="left" valign="top">
 
185
<tbody>
 
186
<tr>
 
187
<td><span class="term"><em class="parameter"><code>quark</code></em>&#160;:</span></td>
 
188
<td>a <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>.
 
189
</td>
 
190
</tr>
 
191
<tr>
 
192
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
193
<td>the string associated with the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>.
 
194
 
 
195
 
 
196
</td>
 
197
</tr>
 
198
</tbody>
 
199
</table></div>
 
200
</div>
 
201
<hr>
 
202
<div class="refsect2" lang="en">
 
203
<a name="id3138296"></a><h3>
 
204
<a name="g-quark-try-string"></a>g_quark_try_string ()</h3>
 
205
<a class="indexterm" name="id3138310"></a><pre class="programlisting"><a href="glib-Quarks.html#GQuark">GQuark</a>              g_quark_try_string                  (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);</pre>
 
206
<p>
 
207
Gets the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> associated with the given string, or 0 if the string has
 
208
no associated <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>.
 
209
</p>
 
210
<p>
 
211
If you want the GQuark to be created if it doesn't already exist, use
 
212
<a href="glib-Quarks.html#g-quark-from-string"><code class="function">g_quark_from_string()</code></a> or <a href="glib-Quarks.html#g-quark-from-static-string"><code class="function">g_quark_from_static_string()</code></a>.
 
213
</p>
 
214
<div class="variablelist"><table border="0">
 
215
<col align="left" valign="top">
 
216
<tbody>
 
217
<tr>
 
218
<td><span class="term"><em class="parameter"><code>string</code></em>&#160;:</span></td>
 
219
<td>a string.
 
220
</td>
 
221
</tr>
 
222
<tr>
 
223
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
224
<td>the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> associated with the string, or 0 if there is no
 
225
<a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> associated with the string.
 
226
 
 
227
 
 
228
</td>
 
229
</tr>
 
230
</tbody>
 
231
</table></div>
 
232
</div>
 
233
<hr>
 
234
<div class="refsect2" lang="en">
 
235
<a name="id3138427"></a><h3>
 
236
<a name="g-intern-string"></a>g_intern_string ()</h3>
 
237
<a class="indexterm" name="id3138442"></a><pre class="programlisting">const <a href="glib-Basic-Types.html#gchar">gchar</a>*        g_intern_string                     (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);</pre>
 
238
<p>
 
239
Returns a canonical representation for <em class="parameter"><code>string</code></em>. Interned strings can
 
240
be compared for equality by comparing the pointers, instead of using <code class="function">strcmp()</code>.</p>
 
241
<p>
 
242
 
 
243
</p>
 
244
<div class="variablelist"><table border="0">
 
245
<col align="left" valign="top">
 
246
<tbody>
 
247
<tr>
 
248
<td><span class="term"><em class="parameter"><code>string</code></em>&#160;:</span></td>
 
249
<td> a string
 
250
</td>
 
251
</tr>
 
252
<tr>
 
253
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
254
<td> a canonical representation for the string
 
255
 
 
256
</td>
 
257
</tr>
 
258
</tbody>
 
259
</table></div>
 
260
<p class="since">Since  2.10
 
261
</p>
 
262
</div>
 
263
<hr>
 
264
<div class="refsect2" lang="en">
 
265
<a name="id3138529"></a><h3>
 
266
<a name="g-intern-static-string"></a>g_intern_static_string ()</h3>
 
267
<a class="indexterm" name="id3138545"></a><pre class="programlisting">const <a href="glib-Basic-Types.html#gchar">gchar</a>*        g_intern_static_string              (const <a href="glib-Basic-Types.html#gchar">gchar</a> *string);</pre>
 
268
<p>
 
269
Returns a canonical representation for <em class="parameter"><code>string</code></em>. Interned strings can
 
270
be compared for equality by comparing the pointers, instead of using <code class="function">strcmp()</code>.
 
271
<a href="glib-Quarks.html#g-intern-static-string"><code class="function">g_intern_static_string()</code></a> does not copy the string, therefore <em class="parameter"><code>string</code></em> must
 
272
not be freed or modified.</p>
 
273
<p>
 
274
 
 
275
</p>
 
276
<div class="variablelist"><table border="0">
 
277
<col align="left" valign="top">
 
278
<tbody>
 
279
<tr>
 
280
<td><span class="term"><em class="parameter"><code>string</code></em>&#160;:</span></td>
 
281
<td> a static string
 
282
</td>
 
283
</tr>
 
284
<tr>
 
285
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
 
286
<td> a canonical representation for the string
 
287
 
 
288
</td>
 
289
</tr>
 
290
</tbody>
 
291
</table></div>
 
292
<p class="since">Since  2.10
 
293
</p>
 
294
</div>
 
295
</div>
 
296
</div>
 
297
</body>
 
298
</html>