glib-Keyed-Data-Lists.html   [plain text]


<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Keyed Data Lists</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="GLib Reference Manual"><link rel="up" href="glib-data-types.html" title="GLib Data Types"><link rel="previous" href="glib-Quarks.html" title="Quarks"><link rel="next" href="glib-Datasets.html" title="Datasets"><link rel="chapter" href="glib.html" title="GLib Overview"><link rel="refentry" href="glib-building.html" title="Compiling the GLib package"><link rel="refentry" href="glib-cross-compiling.html" title="Cross-compiling the GLib package"><link rel="refentry" href="glib-compiling.html" title="Compiling GLib Applications"><link rel="refentry" href="glib-running.html" title="Running GLib Applications"><link rel="refentry" href="glib-changes.html" title="Changes to GLib"><link rel="refentry" href="glib-resources.html" title="Mailing lists and bug reports"><link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals"><link rel="refentry" href="glib-Basic-Types.html" title="Basic Types"><link rel="refentry" href="glib-Limits-of-Basic-Types.html" title="Limits of Basic Types"><link rel="refentry" href="glib-Standard-Macros.html" title="Standard Macros"><link rel="refentry" href="glib-Type-Conversion-Macros.html" title="Type Conversion Macros"><link rel="refentry" href="glib-Byte-Order-Macros.html" title="Byte Order Macros"><link rel="refentry" href="glib-Numerical-Definitions.html" title="Numerical Definitions"><link rel="refentry" href="glib-Miscellaneous-Macros.html" title="Miscellaneous Macros"><link rel="refentry" href="glib-Atomic-Operations.html" title="Atomic Operations"><link rel="chapter" href="glib-core.html" title="GLib Core Application Support"><link rel="refentry" href="glib-The-Main-Event-Loop.html" title="The Main Event Loop"><link rel="refentry" href="glib-Threads.html" title="
Threads"><link rel="refentry" href="glib-Thread-Pools.html" title="Thread Pools"><link rel="refentry" href="glib-Asynchronous-Queues.html" title="Asynchronous Queues"><link rel="refentry" href="glib-Dynamic-Loading-of-Modules.html" title="Dynamic Loading of Modules"><link rel="refentry" href="glib-Memory-Allocation.html" title="Memory Allocation"><link rel="refentry" href="glib-IO-Channels.html" title="IO Channels"><link rel="refentry" href="glib-Error-Reporting.html" title="Error Reporting"><link rel="refentry" href="glib-Warnings-and-Assertions.html" title="Message Output and Debugging Functions"><link rel="refentry" href="glib-Message-Logging.html" title="Message Logging"><link rel="chapter" href="glib-utilities.html" title="GLib Utilities"><link rel="refentry" href="glib-String-Utility-Functions.html" title="String Utility Functions"><link rel="refentry" href="glib-Character-Set-Conversion.html" title="Character Set Conversion"><link rel="refentry" href="glib-Unicode-Manipulation.html" title="Unicode Manipulation"><link rel="refentry" href="glib-I18N.html" title="Internationalization"><link rel="refentry" href="glib-Date-and-Time-Functions.html" title="Date and Time Functions"><link rel="refentry" href="glib-Random-Numbers.html" title="Random Numbers"><link rel="refentry" href="glib-Hook-Functions.html" title="Hook Functions"><link rel="refentry" href="glib-Miscellaneous-Utility-Functions.html" title="Miscellaneous Utility Functions"><link rel="refentry" href="glib-Lexical-Scanner.html" title="Lexical Scanner"><link rel="refentry" href="glib-Automatic-String-Completion.html" title="Automatic String Completion"><link rel="refentry" href="glib-Timers.html" title="Timers"><link rel="refentry" href="glib-Spawning-Processes.html" title="Spawning Processes"><link rel="refentry" href="glib-File-Utilities.html" title="File Utilities"><link rel="refentry" href="glib-Shell-related-Utilities.html" title="Shell-related Utilities"><link rel="refentry" href="glib-Glob-style-pattern-matching.html" title="Glob-style pattern matching"><link rel="refentry" href="glib-Simple-XML-Subset-Parser.html" title="Simple XML Subset Parser"><link rel="refentry" href="glib-Windows-Compatability-Functions.html" title="Windows Compatibility Functions"><link rel="chapter" href="glib-data-types.html" title="GLib Data Types"><link rel="refentry" href="glib-Memory-Chunks.html" title="Memory Chunks"><link rel="refentry" href="glib-Doubly-Linked-Lists.html" title="Doubly-Linked Lists"><link rel="refentry" href="glib-Singly-Linked-Lists.html" title="Singly-Linked Lists"><link rel="refentry" href="glib-Double-ended-Queues.html" title="Double-ended Queues"><link rel="refentry" href="glib-Trash-Stacks.html" title="Trash Stacks"><link rel="refentry" href="glib-Hash-Tables.html" title="Hash Tables"><link rel="refentry" href="glib-Strings.html" title="Strings"><link rel="refentry" href="glib-String-Chunks.html" title="String Chunks"><link rel="refentry" href="glib-Arrays.html" title="Arrays"><link rel="refentry" href="glib-Pointer-Arrays.html" title="Pointer Arrays"><link rel="refentry" href="glib-Byte-Arrays.html" title="Byte Arrays"><link rel="refentry" href="glib-Balanced-Binary-Trees.html" title="Balanced Binary Trees"><link rel="refentry" href="glib-N-ary-Trees.html" title="N-ary Trees"><link rel="refentry" href="glib-Quarks.html" title="Quarks"><link rel="refentry" href="glib-Keyed-Data-Lists.html" title="Keyed Data Lists"><link rel="refentry" href="glib-Datasets.html" title="Datasets"><link rel="refentry" href="glib-Relations-and-Tuples.html" title="Relations and Tuples"><link rel="refentry" href="glib-Caches.html" title="Caches"><link rel="refentry" href="glib-Memory-Allocators.html" title="Memory Allocators"><link rel="chapter" href="tools.html" title="GLib Tools"><link rel="refentry" href="glib-gettextize.html" title="glib-gettextize"><link rel="index" href="ix01.html" title="Index"><link rel="section" href="glib-Keyed-Data-Lists.html#id3326493" title="Description"><link rel="section" href="glib-Keyed-Data-Lists.html#id3326702" title="Details"><meta name="generator" content="GTK-Doc V1.2 (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" 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></table><div class="refentry" lang="en"><a name="glib-Keyed-Data-Lists"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">Keyed Data Lists</span></h2><p>Keyed Data Lists &#8212; lists of data elements which are accessible by a string or <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifier.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">

#include &lt;glib.h&gt;


struct      <a href="glib-Keyed-Data-Lists.html#GData">GData</a>;
void        <a href="glib-Keyed-Data-Lists.html#g-datalist-init">g_datalist_init</a>                 (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist);

#define     <a href="glib-Keyed-Data-Lists.html#g-datalist-id-set-data">g_datalist_id_set_data</a>          (dl, q, d)
void        <a href="glib-Keyed-Data-Lists.html#g-datalist-id-set-data-full">g_datalist_id_set_data_full</a>     (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist,
                                             <a href="glib-Quarks.html#GQuark">GQuark</a> key_id,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data,
                                             <a href="glib-Datasets.html#GDestroyNotify">GDestroyNotify</a> destroy_func);
<a href="glib-Basic-Types.html#gpointer">gpointer</a>    <a href="glib-Keyed-Data-Lists.html#g-datalist-id-get-data">g_datalist_id_get_data</a>          (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist,
                                             <a href="glib-Quarks.html#GQuark">GQuark</a> key_id);
#define     <a href="glib-Keyed-Data-Lists.html#g-datalist-id-remove-data">g_datalist_id_remove_data</a>       (dl, q)
<a href="glib-Basic-Types.html#gpointer">gpointer</a>    <a href="glib-Keyed-Data-Lists.html#g-datalist-id-remove-no-notify">g_datalist_id_remove_no_notify</a>  (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist,
                                             <a href="glib-Quarks.html#GQuark">GQuark</a> key_id);

#define     <a href="glib-Keyed-Data-Lists.html#g-datalist-set-data">g_datalist_set_data</a>             (dl, k, d)
#define     <a href="glib-Keyed-Data-Lists.html#g-datalist-set-data-full">g_datalist_set_data_full</a>        (dl, k, d, f)
#define     <a href="glib-Keyed-Data-Lists.html#g-datalist-get-data">g_datalist_get_data</a>             (dl, k)
#define     <a href="glib-Keyed-Data-Lists.html#g-datalist-remove-data">g_datalist_remove_data</a>          (dl, k)
#define     <a href="glib-Keyed-Data-Lists.html#g-datalist-remove-no-notify">g_datalist_remove_no_notify</a>     (dl, k)

void        <a href="glib-Keyed-Data-Lists.html#g-datalist-foreach">g_datalist_foreach</a>              (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist,
                                             <a href="glib-Datasets.html#GDataForeachFunc">GDataForeachFunc</a> func,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> user_data);
void        <a href="glib-Keyed-Data-Lists.html#g-datalist-clear">g_datalist_clear</a>                (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist);
</pre></div><div class="refsect1" lang="en"><a name="id3326493"></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 href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> corresponding to the
string.
</p><p>
The <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> methods are quicker, since the strings have to be converted to
<span class="type">GQuarks</span> anyway.
</p><p>
Data lists are used for associating arbitrary data with
<span class="type">GObjects</span>, using <a
href="../gobject/gobject-The-Base-Object-Type.html#g-object-set-data"
><tt class="function">g_object_set_data()</tt></a> and related functions.
</p><p>
To create a datalist, use <a href="glib-Keyed-Data-Lists.html#g-datalist-init"><tt class="function">g_datalist_init()</tt></a>.
</p><p>
To add data elements to a datalist use <a href="glib-Keyed-Data-Lists.html#g-datalist-id-set-data"><tt class="function">g_datalist_id_set_data()</tt></a>,
<a href="glib-Keyed-Data-Lists.html#g-datalist-id-set-data-full"><tt class="function">g_datalist_id_set_data_full()</tt></a>, <a href="glib-Keyed-Data-Lists.html#g-datalist-set-data"><tt class="function">g_datalist_set_data()</tt></a>
and <a href="glib-Keyed-Data-Lists.html#g-datalist-set-data-full"><tt class="function">g_datalist_set_data_full()</tt></a>.
</p><p>
To get data elements from a datalist use <a href="glib-Keyed-Data-Lists.html#g-datalist-id-get-data"><tt class="function">g_datalist_id_get_data()</tt></a> and
<a href="glib-Keyed-Data-Lists.html#g-datalist-get-data"><tt class="function">g_datalist_get_data()</tt></a>.
</p><p>
To iterate over all data elements in a datalist use <a href="glib-Keyed-Data-Lists.html#g-datalist-foreach"><tt class="function">g_datalist_foreach()</tt></a>.
</p><p>
To remove data elements from a datalist use <a href="glib-Keyed-Data-Lists.html#g-datalist-id-remove-data"><tt class="function">g_datalist_id_remove_data()</tt></a> and
<a href="glib-Keyed-Data-Lists.html#g-datalist-remove-data"><tt class="function">g_datalist_remove_data()</tt></a>.
</p><p>
To remove all data elements from a datalist, use <a href="glib-Keyed-Data-Lists.html#g-datalist-clear"><tt class="function">g_datalist_clear()</tt></a>.
</p></div><div class="refsect1" lang="en"><a name="id3326702"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id3326708"></a><h3><a name="GData"></a>struct GData</h3><a class="indexterm" name="id3326719"></a><pre class="programlisting">struct GData;</pre><p>
The <a href="glib-Keyed-Data-Lists.html#GData"><span class="type">GData</span></a> struct is an opaque data structure to represent a
<a 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" lang="en"><a name="id3326752"></a><h3><a name="g-datalist-init"></a>g_datalist_init ()</h3><a class="indexterm" name="id3326763"></a><pre class="programlisting">void        g_datalist_init                 (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist);</pre><p>
Resets the datalist to <tt class="literal">NULL</tt>.
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><span class="term"><i class="parameter"><tt>datalist</tt></i> :</span></td><td>a pointer to a pointer to a datalist.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3326817"></a><h3><a name="g-datalist-id-set-data"></a>g_datalist_id_set_data()</h3><a class="indexterm" name="id3326828"></a><pre class="programlisting">#define     g_datalist_id_set_data(dl, q, d)</pre><p>
Sets the data corresponding to the given <a href="glib-Quarks.html#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><span class="term"><i class="parameter"><tt>dl</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>q</tt></i> :</span></td><td>the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> to identify the data element.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>d</tt></i> :</span></td><td>the data element, or <tt class="literal">NULL</tt> to remove any previous element
corresponding to <i class="parameter"><tt>q</tt></i>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3326920"></a><h3><a name="g-datalist-id-set-data-full"></a>g_datalist_id_set_data_full ()</h3><a class="indexterm" name="id3326932"></a><pre class="programlisting">void        g_datalist_id_set_data_full     (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist,
                                             <a href="glib-Quarks.html#GQuark">GQuark</a> key_id,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data,
                                             <a href="glib-Datasets.html#GDestroyNotify">GDestroyNotify</a> destroy_func);</pre><p>
Sets the data corresponding to the given <a href="glib-Quarks.html#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><span class="term"><i class="parameter"><tt>datalist</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>key_id</tt></i> :</span></td><td>the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> to identify the data element.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>the data element or <tt class="literal">NULL</tt> to remove any previous element
corresponding to <i class="parameter"><tt>key_id</tt></i>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>destroy_func</tt></i> :</span></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 <i class="parameter"><tt>data</tt></i> is <tt class="literal">NULL</tt>, then <i class="parameter"><tt>destroy_func</tt></i> must
also be <tt class="literal">NULL</tt>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327102"></a><h3><a name="g-datalist-id-get-data"></a>g_datalist_id_get_data ()</h3><a class="indexterm" name="id3327113"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gpointer">gpointer</a>    g_datalist_id_get_data          (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist,
                                             <a href="glib-Quarks.html#GQuark">GQuark</a> key_id);</pre><p>
Retrieves the data element corresponding to <i class="parameter"><tt>key_id</tt></i>. 
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>datalist</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>key_id</tt></i> :</span></td><td>the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifying a data element.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the data element, or <tt class="literal">NULL</tt> if it is not found.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327213"></a><h3><a name="g-datalist-id-remove-data"></a>g_datalist_id_remove_data()</h3><a class="indexterm" name="id3327224"></a><pre class="programlisting">#define     g_datalist_id_remove_data(dl, q)</pre><p>
Removes an element, using its <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifier.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>dl</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>q</tt></i> :</span></td><td>the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifying the data element.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327288"></a><h3><a name="g-datalist-id-remove-no-notify"></a>g_datalist_id_remove_no_notify ()</h3><a class="indexterm" name="id3327300"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gpointer">gpointer</a>    g_datalist_id_remove_no_notify  (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist,
                                             <a href="glib-Quarks.html#GQuark">GQuark</a> key_id);</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><span class="term"><i class="parameter"><tt>datalist</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>key_id</tt></i> :</span></td><td>the <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> identifying a data element.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the data previously stored at <i class="parameter"><tt>key_id</tt></i>, or <tt class="literal">NULL</tt> if none.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327401"></a><h3><a name="g-datalist-set-data"></a>g_datalist_set_data()</h3><a class="indexterm" name="id3327412"></a><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><span class="term"><i class="parameter"><tt>dl</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>k</tt></i> :</span></td><td>the string to identify the data element.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>d</tt></i> :</span></td><td>the data element, or <tt class="literal">NULL</tt> to remove any previous element
corresponding to <i class="parameter"><tt>k</tt></i>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327487"></a><h3><a name="g-datalist-set-data-full"></a>g_datalist_set_data_full()</h3><a class="indexterm" name="id3327498"></a><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><span class="term"><i class="parameter"><tt>dl</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>k</tt></i> :</span></td><td>the string to identify the data element.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>d</tt></i> :</span></td><td>the data element, or <tt class="literal">NULL</tt> to remove any previous element corresponding to
<i class="parameter"><tt>k</tt></i>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>f</tt></i> :</span></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 <i class="parameter"><tt>d</tt></i> is <tt class="literal">NULL</tt>, then <i class="parameter"><tt>f</tt></i> must also be <tt class="literal">NULL</tt>.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327613"></a><h3><a name="g-datalist-get-data"></a>g_datalist_get_data()</h3><a class="indexterm" name="id3327625"></a><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 href="glib-Keyed-Data-Lists.html#g-datalist-id-get-data"><tt class="function">g_datalist_id_get_data()</tt></a> because the string is first
converted to a <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>dl</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>k</tt></i> :</span></td><td>the string identifying a data element.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the data element, or <tt class="literal">NULL</tt> if it is not found.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327710"></a><h3><a name="g-datalist-remove-data"></a>g_datalist_remove_data()</h3><a class="indexterm" name="id3327721"></a><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><span class="term"><i class="parameter"><tt>dl</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>k</tt></i> :</span></td><td>the string identifying the data element.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327771"></a><h3><a name="g-datalist-remove-no-notify"></a>g_datalist_remove_no_notify()</h3><a class="indexterm" name="id3327782"></a><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><span class="term"><i class="parameter"><tt>dl</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>k</tt></i> :</span></td><td>the string identifying the data element.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327831"></a><h3><a name="g-datalist-foreach"></a>g_datalist_foreach ()</h3><a class="indexterm" name="id3327842"></a><pre class="programlisting">void        g_datalist_foreach              (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist,
                                             <a href="glib-Datasets.html#GDataForeachFunc">GDataForeachFunc</a> func,
                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> user_data);</pre><p>
Calls the given function for each data element of the datalist.
The function is called with each data element's <a href="glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> id and data,
together with the given <i class="parameter"><tt>user_data</tt></i> parameter.
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>datalist</tt></i> :</span></td><td>a datalist.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>func</tt></i> :</span></td><td>the function to call for each data element.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>user data to pass to the function.


</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3327950"></a><h3><a name="g-datalist-clear"></a>g_datalist_clear ()</h3><a class="indexterm" name="id3327961"></a><pre class="programlisting">void        g_datalist_clear                (<a href="glib-Keyed-Data-Lists.html#GData">GData</a> **datalist);</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><span class="term"><i class="parameter"><tt>datalist</tt></i> :</span></td><td>a datalist.


</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="glib-Quarks.html"><b>&lt;&lt; Quarks</b></a></td><td align="right"><a accesskey="n" href="glib-Datasets.html"><b>Datasets &gt;&gt;</b></a></td></tr></table></body></html>