<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="xfconf-xfconf">
<refmeta>
<refentrytitle role="top_of_page" id="xfconf-xfconf.top_of_page">Xfconf Library Core</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>XFCONF Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>Xfconf Library Core</refname>
<refpurpose>Init routines and core functionality for libxfconf</refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv id="xfconf-xfconf.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>
<link linkend="gboolean">gboolean</link>            <link linkend="xfconf-init">xfconf_init</link>                         (<link linkend="GError">GError</link> **error);
<link linkend="void">void</link>                <link linkend="xfconf-shutdown">xfconf_shutdown</link>                     ();
<link linkend="void">void</link>                <link linkend="xfconf-named-struct-register">xfconf_named_struct_register</link>        (const <link linkend="gchar">gchar</link> *struct_name,
                                                         <link linkend="guint">guint</link> n_members,
                                                         const <link linkend="GType">GType</link> *member_types);
<link linkend="void">void</link>                <link linkend="xfconf-array-free">xfconf_array_free</link>                   (<link linkend="GPtrArray">GPtrArray</link> *arr);
</synopsis>
</refsynopsisdiv>









<refsect1 id="xfconf-xfconf.description" role="desc">
<title role="desc.title">Description</title>
<para>
Before libxfconf can be used, it must be initialized by calling
<link linkend="xfconf-init"><function>xfconf_init()</function></link>.  To free resources used by the library, call
<link linkend="xfconf-shutdown"><function>xfconf_shutdown()</function></link>.  These calls are "recursive": multiple calls to
<link linkend="xfconf-init"><function>xfconf_init()</function></link> are allowed, but each call must be matched by a
separate call to <link linkend="xfconf-shutdown"><function>xfconf_shutdown()</function></link> to really free the library's
resources.
</para>
</refsect1>

<refsect1 id="xfconf-xfconf.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="xfconf-init" role="function">
<title>xfconf_init ()</title>
<indexterm zone="xfconf-init"><primary>xfconf_init</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            xfconf_init                         (<link linkend="GError">GError</link> **error);</programlisting>
<para>
Initializes the Xfconf library.  Can be called multiple times with no
adverse effects.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> An error return.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the library was initialized succesfully, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> on
         error.  If there is an error <parameter>error</parameter> will be set.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xfconf-shutdown" role="function">
<title>xfconf_shutdown ()</title>
<indexterm zone="xfconf-shutdown"><primary>xfconf_shutdown</primary></indexterm><programlisting><link linkend="void">void</link>                xfconf_shutdown                     ();</programlisting>
<para>
Shuts down and frees any resources consumed by the Xfconf library.
If <link linkend="xfconf-init"><function>xfconf_init()</function></link> is called multiple times, <link linkend="xfconf-shutdown"><function>xfconf_shutdown()</function></link> must be
called an equal number of times to shut down the library.</para>
<para>

</para></refsect2>
<refsect2 id="xfconf-named-struct-register" role="function">
<title>xfconf_named_struct_register ()</title>
<indexterm zone="xfconf-named-struct-register"><primary>xfconf_named_struct_register</primary></indexterm><programlisting><link linkend="void">void</link>                xfconf_named_struct_register        (const <link linkend="gchar">gchar</link> *struct_name,
                                                         <link linkend="guint">guint</link> n_members,
                                                         const <link linkend="GType">GType</link> *member_types);</programlisting>
<para>
Registers a named struct for use with <link linkend="xfconf-channel-get-named-struct"><function>xfconf_channel_get_named_struct()</function></link>
and <link linkend="xfconf-channel-set-named-struct"><function>xfconf_channel_set_named_struct()</function></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>struct_name</parameter>&nbsp;:</term>
<listitem><simpara> The unique name of the struct to register.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n_members</parameter>&nbsp;:</term>
<listitem><simpara> The number of data members in the struct.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>member_types</parameter>&nbsp;:</term>
<listitem><simpara> An array of the <link linkend="GType"><type>GType</type></link><!-- -->s of the struct members.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xfconf-array-free" role="function">
<title>xfconf_array_free ()</title>
<indexterm zone="xfconf-array-free"><primary>xfconf_array_free</primary></indexterm><programlisting><link linkend="void">void</link>                xfconf_array_free                   (<link linkend="GPtrArray">GPtrArray</link> *arr);</programlisting>
<para>
Properly frees a <link linkend="GPtrArray"><type>GPtrArray</type></link> structure containing a list of
<link linkend="GValue"><type>GValue</type></link><!-- -->s.  This will also cause the contents of the
values to be freed as well.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>arr</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GPtrArray"><type>GPtrArray</type></link> of <link linkend="GValue"><type>GValue</type></link><!-- -->s.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
