## Xfconf Library Core

Xfconf Library Core — Init routines and core functionality for libxfconf

## Synopsis

    gboolean            xfconf_init                         (GError **error);
    void                xfconf_shutdown                     (void);
    void                xfconf_named_struct_register        (const gchar *struct_name,
                                                             guint n_members,
                                                             const GType *member_types);
    void                xfconf_array_free                   (GPtrArray *arr);

## Description

Before libxfconf can be used, it must be initialized by calling `xfconf_init()`. To free resources used by the library, call `xfconf_shutdown()`. These calls are "recursive": multiple calls to `xfconf_init()` are allowed, but each call must be matched by a separate call to `xfconf_shutdown()` to really free the library's resources.

## Details

### xfconf_init ()

    gboolean            xfconf_init                         (GError **error);

Initializes the Xfconf library. Can be called multiple times with no adverse effects.

`error` : | An error return.
Returns : | `TRUE` if the library was initialized succesfully, `FALSE` on error. If there is an error `error` will be set.

### xfconf_shutdown ()

    void                xfconf_shutdown                     (void);

Shuts down and frees any resources consumed by the Xfconf library. If `xfconf_init()` is called multiple times, `xfconf_shutdown()` must be called an equal number of times to shut down the library.

### xfconf_named_struct_register ()

    void                xfconf_named_struct_register        (const gchar *struct_name,
                                                             guint n_members,
                                                             const GType *member_types);

Registers a named struct for use with `xfconf_channel_get_named_struct()` and `xfconf_channel_set_named_struct()`.

`struct_name` : | The unique name of the struct to register.
`n_members` : | The number of data members in the struct.
`member_types` : | An array of the GTypes of the struct members.

### xfconf_array_free ()

    void                xfconf_array_free                   (GPtrArray *arr);

Properly frees a GPtrArray structure containing a list of GValues. This will also cause the contents of the values to be freed as well.

`arr` : | A GPtrArray of GValues.