blob: 9ba60ea4e7631f5ea94c2282fedd6f306765f99c [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Keyed Data Lists</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="GLib Reference Manual">
<link rel="up" href="glib-data-types.html" title="GLib Data Types">
<link rel="prev" href="glib-Quarks.html" title="Quarks">
<link rel="next" href="glib-Datasets.html" title="Datasets">
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="glib-Quarks.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="glib-data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GLib Reference Manual</th>
<td><a accesskey="n" href="glib-Datasets.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#glib-Keyed-Data-Lists.synopsis" class="shortcut">Top</a>
 | 
<a href="#glib-Keyed-Data-Lists.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry" title="Keyed Data Lists">
<a name="glib-Keyed-Data-Lists"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="glib-Keyed-Data-Lists.top_of_page"></a>Keyed Data Lists</span></h2>
<p>Keyed Data Lists — lists of data elements which are accessible by a
string or GQuark identifier</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="glib-Keyed-Data-Lists.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;glib.h&gt;
<a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData">GData</a>;
<span class="returnvalue">void</span> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-init" title="g_datalist_init ()">g_datalist_init</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>);
#define <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-set-data" title="g_datalist_id_set_data()">g_datalist_id_set_data</a> (dl,
q,
d)
<span class="returnvalue">void</span> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-set-data-full" title="g_datalist_id_set_data_full ()">g_datalist_id_set_data_full</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> key_id</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> destroy_func</code></em>);
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-get-data" title="g_datalist_id_get_data ()">g_datalist_id_get_data</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> key_id</code></em>);
#define <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-remove-data" title="g_datalist_id_remove_data()">g_datalist_id_remove_data</a> (dl,
q)
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-remove-no-notify" title="g_datalist_id_remove_no_notify ()">g_datalist_id_remove_no_notify</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> key_id</code></em>);
#define <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-set-data" title="g_datalist_set_data()">g_datalist_set_data</a> (dl,
k,
d)
#define <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-set-data-full" title="g_datalist_set_data_full()">g_datalist_set_data_full</a> (dl,
k,
d,
f)
#define <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-get-data" title="g_datalist_get_data()">g_datalist_get_data</a> (dl,
k)
#define <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-remove-data" title="g_datalist_remove_data()">g_datalist_remove_data</a> (dl,
k)
#define <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-remove-no-notify" title="g_datalist_remove_no_notify()">g_datalist_remove_no_notify</a> (dl,
k)
<span class="returnvalue">void</span> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-foreach" title="g_datalist_foreach ()">g_datalist_foreach</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Datasets.html#GDataForeachFunc" title="GDataForeachFunc ()"><span class="type">GDataForeachFunc</span></a> func</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<span class="returnvalue">void</span> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-clear" title="g_datalist_clear ()">g_datalist_clear</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>);
<span class="returnvalue">void</span> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-set-flags" title="g_datalist_set_flags ()">g_datalist_set_flags</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> flags</code></em>);
<span class="returnvalue">void</span> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-unset-flags" title="g_datalist_unset_flags ()">g_datalist_unset_flags</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> flags</code></em>);
<a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-get-flags" title="g_datalist_get_flags ()">g_datalist_get_flags</a> (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>);
#define <a class="link" href="glib-Keyed-Data-Lists.html#G-DATALIST-FLAGS-MASK:CAPS" title="G_DATALIST_FLAGS_MASK">G_DATALIST_FLAGS_MASK</a>
</pre>
</div>
<div class="refsect1" title="Description">
<a name="glib-Keyed-Data-Lists.description"></a><h2>Description</h2>
<p>
Keyed data lists provide lists of arbitrary data elements which can
be accessed either with a string or with a <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> corresponding to
the string.
</p>
<p>
The <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> methods are quicker, since the strings have to be
converted to <a href="glib-Quarks.html#GQuark"><span class="type">GQuarks</span></a> anyway.
</p>
<p>
Data lists are used for associating arbitrary data with <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObjects</span></a>,
using <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-set-data"><code class="function">g_object_set_data()</code></a> and related functions.
</p>
<p>
To create a datalist, use <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-init" title="g_datalist_init ()"><code class="function">g_datalist_init()</code></a>.
</p>
<p>
To add data elements to a datalist use <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-set-data" title="g_datalist_id_set_data()"><code class="function">g_datalist_id_set_data()</code></a>,
<a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-set-data-full" title="g_datalist_id_set_data_full ()"><code class="function">g_datalist_id_set_data_full()</code></a>, <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-set-data" title="g_datalist_set_data()"><code class="function">g_datalist_set_data()</code></a> and
<a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-set-data-full" title="g_datalist_set_data_full()"><code class="function">g_datalist_set_data_full()</code></a>.
</p>
<p>
To get data elements from a datalist use <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-get-data" title="g_datalist_id_get_data ()"><code class="function">g_datalist_id_get_data()</code></a>
and <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-get-data" title="g_datalist_get_data()"><code class="function">g_datalist_get_data()</code></a>.
</p>
<p>
To iterate over all data elements in a datalist use
<a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-foreach" title="g_datalist_foreach ()"><code class="function">g_datalist_foreach()</code></a> (not thread-safe).
</p>
<p>
To remove data elements from a datalist use
<a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-remove-data" title="g_datalist_id_remove_data()"><code class="function">g_datalist_id_remove_data()</code></a> and <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-remove-data" title="g_datalist_remove_data()"><code class="function">g_datalist_remove_data()</code></a>.
</p>
<p>
To remove all data elements from a datalist, use <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-clear" title="g_datalist_clear ()"><code class="function">g_datalist_clear()</code></a>.
</p>
</div>
<div class="refsect1" title="Details">
<a name="glib-Keyed-Data-Lists.details"></a><h2>Details</h2>
<div class="refsect2" title="GData">
<a name="GData"></a><h3>GData</h3>
<pre class="programlisting">typedef struct _GData GData;</pre>
<p>
The <a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> struct is an opaque data structure to represent a <a class="link" href="glib-Keyed-Data-Lists.html" title="Keyed Data Lists">Keyed Data List</a>. It should
only be accessed via the following functions.
</p>
</div>
<hr>
<div class="refsect2" title="g_datalist_init ()">
<a name="g-datalist-init"></a><h3>g_datalist_init ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_datalist_init (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>);</pre>
<p>
Resets the datalist to <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. It does not free any memory or call
any destroy functions.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>a pointer to a pointer to a datalist.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_id_set_data()">
<a name="g-datalist-id-set-data"></a><h3>g_datalist_id_set_data()</h3>
<pre class="programlisting">#define g_datalist_id_set_data(dl, q, d)</pre>
<p>
Sets the data corresponding to the given <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> id. Any previous
data with the same key is removed, and its destroy function is
called.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>dl</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
<td>the <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> to identify the data element.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
<td>the data element, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to remove any previous element
corresponding to <em class="parameter"><code>q</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_id_set_data_full ()">
<a name="g-datalist-id-set-data-full"></a><h3>g_datalist_id_set_data_full ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_datalist_id_set_data_full (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> key_id</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> destroy_func</code></em>);</pre>
<p>
Sets the data corresponding to the given <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> id, and the
function to be called when the element is removed from the datalist.
Any previous data with the same key is removed, and its destroy
function is called.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key_id</code></em> :</span></p></td>
<td>the <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> to identify the data element.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>the data element or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to remove any previous element
corresponding to <em class="parameter"><code>key_id</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>destroy_func</code></em> :</span></p></td>
<td>the function to call when the data element is
removed. This function will be called with the data
element and can be used to free any memory allocated
for it. If <em class="parameter"><code>data</code></em> is <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <em class="parameter"><code>destroy_func</code></em> must
also be <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_id_get_data ()">
<a name="g-datalist-id-get-data"></a><h3>g_datalist_id_get_data ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_datalist_id_get_data (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> key_id</code></em>);</pre>
<p>
Retrieves the data element corresponding to <em class="parameter"><code>key_id</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key_id</code></em> :</span></p></td>
<td>the <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> identifying a data element.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the data element, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if it is not found.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_id_remove_data()">
<a name="g-datalist-id-remove-data"></a><h3>g_datalist_id_remove_data()</h3>
<pre class="programlisting">#define g_datalist_id_remove_data(dl, q)</pre>
<p>
Removes an element, using its <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> identifier.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>dl</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
<td>the <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> identifying the data element.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_id_remove_no_notify ()">
<a name="g-datalist-id-remove-no-notify"></a><h3>g_datalist_id_remove_no_notify ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_datalist_id_remove_no_notify (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> key_id</code></em>);</pre>
<p>
Removes an element, without calling its destroy notification
function.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key_id</code></em> :</span></p></td>
<td>the <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> identifying a data element.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the data previously stored at <em class="parameter"><code>key_id</code></em>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if none.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_set_data()">
<a name="g-datalist-set-data"></a><h3>g_datalist_set_data()</h3>
<pre class="programlisting">#define g_datalist_set_data(dl, k, d)</pre>
<p>
Sets the data element corresponding to the given string identifier.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>dl</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>k</code></em> :</span></p></td>
<td>the string to identify the data element.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
<td>the data element, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to remove any previous element
corresponding to <em class="parameter"><code>k</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_set_data_full()">
<a name="g-datalist-set-data-full"></a><h3>g_datalist_set_data_full()</h3>
<pre class="programlisting">#define g_datalist_set_data_full(dl, k, d, f)</pre>
<p>
Sets the data element corresponding to the given string identifier,
and the function to be called when the data element is removed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>dl</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>k</code></em> :</span></p></td>
<td>the string to identify the data element.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
<td>the data element, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> to remove any previous element
corresponding to <em class="parameter"><code>k</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
<td>the function to call when the data element is removed. This
function will be called with the data element and can be used to
free any memory allocated for it. If <em class="parameter"><code>d</code></em> is <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, then <em class="parameter"><code>f</code></em> must
also be <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_get_data()">
<a name="g-datalist-get-data"></a><h3>g_datalist_get_data()</h3>
<pre class="programlisting">#define g_datalist_get_data(dl, k)</pre>
<p>
Gets a data element, using its string identifer. This is slower than
<a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-id-get-data" title="g_datalist_id_get_data ()"><code class="function">g_datalist_id_get_data()</code></a> because the string is first converted to a
<a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>dl</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>k</code></em> :</span></p></td>
<td>the string identifying a data element.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the data element, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if it is not found.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_remove_data()">
<a name="g-datalist-remove-data"></a><h3>g_datalist_remove_data()</h3>
<pre class="programlisting">#define g_datalist_remove_data(dl, k)</pre>
<p>
Removes an element using its string identifier. The data element's
destroy function is called if it has been set.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>dl</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>k</code></em> :</span></p></td>
<td>the string identifying the data element.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_remove_no_notify()">
<a name="g-datalist-remove-no-notify"></a><h3>g_datalist_remove_no_notify()</h3>
<pre class="programlisting">#define g_datalist_remove_no_notify(dl, k)</pre>
<p>
Removes an element, without calling its destroy notifier.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>dl</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>k</code></em> :</span></p></td>
<td>the string identifying the data element.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_foreach ()">
<a name="g-datalist-foreach"></a><h3>g_datalist_foreach ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_datalist_foreach (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Datasets.html#GDataForeachFunc" title="GDataForeachFunc ()"><span class="type">GDataForeachFunc</span></a> func</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
Calls the given function for each data element of the datalist. The
function is called with each data element's <a class="link" href="glib-Quarks.html#GQuark" title="GQuark"><span class="type">GQuark</span></a> id and data,
together with the given <em class="parameter"><code>user_data</code></em> parameter. Note that this
function is NOT thread-safe. So unless <em class="parameter"><code>datalist</code></em> can be protected
from any modifications during invocation of this function, it should
not be called.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
<td>the function to call for each data element.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data to pass to the function.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_clear ()">
<a name="g-datalist-clear"></a><h3>g_datalist_clear ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_datalist_clear (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>);</pre>
<p>
Frees all the data elements of the datalist. The data elements'
destroy functions are called if they have been set.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>a datalist.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="g_datalist_set_flags ()">
<a name="g-datalist-set-flags"></a><h3>g_datalist_set_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_datalist_set_flags (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> flags</code></em>);</pre>
<p>
Turns on flag values for a data list. This function is used
to keep a small number of boolean flags in an object with
a data list without using any additional space. It is
not generally useful except in circumstances where space
is very tight. (It is used in the base <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> type, for
example.)
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>pointer to the location that holds a list
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>the flags to turn on. The values of the flags are
restricted by <a class="link" href="glib-Keyed-Data-Lists.html#G-DATALIST-FLAGS-MASK:CAPS" title="G_DATALIST_FLAGS_MASK"><code class="literal">G_DATALIST_FLAGS_MASK</code></a> (currently
3; giving two possible boolean flags).
A value for <em class="parameter"><code>flags</code></em> that doesn't fit within the mask is
an error.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2" title="g_datalist_unset_flags ()">
<a name="g-datalist-unset-flags"></a><h3>g_datalist_unset_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> g_datalist_unset_flags (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>,
<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> flags</code></em>);</pre>
<p>
Turns off flag values for a data list. See <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-unset-flags" title="g_datalist_unset_flags ()"><code class="function">g_datalist_unset_flags()</code></a>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>pointer to the location that holds a list
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>the flags to turn off. The values of the flags are
restricted by <a class="link" href="glib-Keyed-Data-Lists.html#G-DATALIST-FLAGS-MASK:CAPS" title="G_DATALIST_FLAGS_MASK"><code class="literal">G_DATALIST_FLAGS_MASK</code></a> (currently
3: giving two possible boolean flags).
A value for <em class="parameter"><code>flags</code></em> that doesn't fit within the mask is
an error.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2" title="g_datalist_get_flags ()">
<a name="g-datalist-get-flags"></a><h3>g_datalist_get_flags ()</h3>
<pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_datalist_get_flags (<em class="parameter"><code><a class="link" href="glib-Keyed-Data-Lists.html#GData" title="GData"><span class="type">GData</span></a> **datalist</code></em>);</pre>
<p>
Gets flags values packed in together with the datalist.
See <a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-set-flags" title="g_datalist_set_flags ()"><code class="function">g_datalist_set_flags()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>datalist</code></em> :</span></p></td>
<td>pointer to the location that holds a list
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the flags of the datalist
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2" title="G_DATALIST_FLAGS_MASK">
<a name="G-DATALIST-FLAGS-MASK:CAPS"></a><h3>G_DATALIST_FLAGS_MASK</h3>
<pre class="programlisting">#define G_DATALIST_FLAGS_MASK 0x3
</pre>
<p>
A bitmask that restricts the possible flags passed to
<a class="link" href="glib-Keyed-Data-Lists.html#g-datalist-set-flags" title="g_datalist_set_flags ()"><code class="function">g_datalist_set_flags()</code></a>. Passing a flags value where
flags &amp; ~G_DATALIST_FLAGS_MASK != 0 is an error.
</p>
</div>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.14</div>
</body>
</html>