XfconfBackend

XfconfBackend — Interface for configuration store backends

Synopsis

struct              XfconfBackendInterface;
                    XfconfBackend;
gboolean            xfconf_backend_initialize           (XfconfBackend *backend,
                                                         GError **error);
gboolean            xfconf_backend_set                  (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property,
                                                         const GValue *value,
                                                         GError **error);
gboolean            xfconf_backend_get                  (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property,
                                                         GValue *value,
                                                         GError **error);
gboolean            xfconf_backend_get_all              (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property_base,
                                                         GHashTable *properties,
                                                         GError **error);
gboolean            xfconf_backend_exists               (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property,
                                                         gboolean *exists,
                                                         GError **error);
gboolean            xfconf_backend_reset                (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property,
                                                         gboolean recursive,
                                                         GError **error);
gboolean            xfconf_backend_flush                (XfconfBackend *backend,
                                                         GError **error);
void                xfconf_backend_register_property_changed_func
                                                        (XfconfBackend *backend,
                                                         XfconfPropertyChangedFunc func,
                                                         gpointer user_data);

Object Hierarchy

  GInterface
   +----XfconfBackend

Prerequisites

XfconfBackend requires GObject.

Description

XfconfBackend is an abstract interface that allows the Xfconf Daemon to use different backends for storing configuration data. These backends can be flat text or binary files, a database, or just about anything one could think of to store data.

Details

struct XfconfBackendInterface

struct XfconfBackendInterface {
    GTypeInterface parent;
    
    gboolean (*initialize)(XfconfBackend *backend,
                           GError **error);
    
    gboolean (*set)(XfconfBackend *backend,
                    const gchar *channel,
                    const gchar *property,
                    const GValue *value,
                    GError **error);
    
    gboolean (*get)(XfconfBackend *backend,
                    const gchar *channel,
                    const gchar *property,
                    GValue *value,
                    GError **error);
    
    gboolean (*get_all)(XfconfBackend *backend,
                        const gchar *channel,
                        const gchar *property_base,
                        GHashTable *properties,
                        GError **error);
    
    gboolean (*exists)(XfconfBackend *backend,
                       const gchar *channel,
                       const gchar *property,
                       gboolean *exists,
                       GError **error);
    
    gboolean (*reset)(XfconfBackend *backend,
                      const gchar *channel,
                      const gchar *property,
                      gboolean recursive,
                      GError **error);

    gboolean (*list_channels)(XfconfBackend *backend,
                              GSList **channels,
                              GError **error);

    gboolean (*is_property_locked)(XfconfBackend *backend,
                                   const gchar *channel,
                                   const gchar *property,
                                   gboolean *locked,
                                   GError **error);
    
    gboolean (*flush)(XfconfBackend *backend,
                      GError **error);

    void (*register_property_changed_func)(XfconfBackend *backend,
                                           XfconfPropertyChangedFunc func,
                                           gpointer user_data);
    
    /*< reserved for future expansion >*/
    void (*_xb_reserved0)();
    void (*_xb_reserved1)();
    void (*_xb_reserved2)();
    void (*_xb_reserved3)();
};

An interface for implementing pluggable configuration store backends into the Xfconf Daemon.

See the XfconfBackend function documentation for a description of what each virtual function in XfconfBackendInterface should do.

GTypeInterface parent;

GObject interface parent.

initialize ()

See xfconf_backend_initialize().

set ()

See xfconf_backend_set().

get ()

See xfconf_backend_get().

get_all ()

See xfconf_backend_get_all().

exists ()

See xfconf_backend_exists().

reset ()

See xfconf_backend_reset().

list_channels ()

See xfconf_backend_list_channels().

is_property_locked ()

See xfconf_backend_is_property_locked().

flush ()

See xfconf_backend_flush().

register_property_changed_func ()

See xfconf_backend_register_property_changed_func().

_xb_reserved0 ()

Reserved for future expansion.

_xb_reserved1 ()

Reserved for future expansion.

_xb_reserved2 ()

Reserved for future expansion.

_xb_reserved3 ()

Reserved for future expansion.

XfconfBackend

typedef struct _XfconfBackend XfconfBackend;

An instance of a class implementing a XfconfBackendInterface.


xfconf_backend_initialize ()

gboolean            xfconf_backend_initialize           (XfconfBackend *backend,
                                                         GError **error);

Does any pre-initialization that the backend needs to function.

backend :

The XfconfBackend.

error :

An error return.

Returns :

The backend should return TRUE if initialization was successful, or FALSE otherwise. On FALSE, error should be set to a description of the failure.

xfconf_backend_set ()

gboolean            xfconf_backend_set                  (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property,
                                                         const GValue *value,
                                                         GError **error);

Sets the variant value for property on channel.

backend :

The XfconfBackend.

channel :

A channel name.

property :

A property name.

value :

A value.

error :

An error return.

Returns :

The backend should return TRUE if the operation was successful, or FALSE otherwise. On FALSE, error should be set to a description of the failure.

xfconf_backend_get ()

gboolean            xfconf_backend_get                  (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property,
                                                         GValue *value,
                                                         GError **error);

Gets the value of property on channel and stores it in value.

backend :

The XfconfBackend.

channel :

A channel name.

property :

A property name.

value :

A GValue return.

error :

An error return.

Returns :

The backend should return TRUE if the operation was successful, or FALSE otherwise. On FALSE, error should be set to a description of the failure.

xfconf_backend_get_all ()

gboolean            xfconf_backend_get_all              (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property_base,
                                                         GHashTable *properties,
                                                         GError **error);

Gets multiple properties and values on channel and stores them in properties, which is already initialized to hold gchar* keys and GValue* values. The property_base parameter can be used to limit the retrieval to a sub-tree of the property tree.

A value of the empty string ("") or forward slash ("/") for property_base indicates the entire channel.

backend :

The XfconfBackend.

channel :

A channel name.

property_base :

The base of properties to return.

properties :

A GHashTable.

error :

An error return.

Returns :

The backend should return TRUE if the operation was successful, or FALSE otherwise. On FALSE, error should be set to a description of the failure.

xfconf_backend_exists ()

gboolean            xfconf_backend_exists               (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property,
                                                         gboolean *exists,
                                                         GError **error);

Checks to see if property exists on channel, and stores TRUE or FALSE in exists.

backend :

The XfconfBackend.

channel :

A channel name.

property :

A property name.

exists :

A boolean return.

error :

An error return.

Returns :

The backend should return TRUE if the operation was successful, or FALSE otherwise. On FALSE, error should be set to a description of the failure.

xfconf_backend_reset ()

gboolean            xfconf_backend_reset                (XfconfBackend *backend,
                                                         const gchar *channel,
                                                         const gchar *property,
                                                         gboolean recursive,
                                                         GError **error);

Resets the property identified by property from channel. If recursive is TRUE, all sub-properties of property will be reset as well. If the empty string ("") or a forward slash ("/") is specified for property, the entire channel will be reset.

If none of the properties specified are locked or have root-owned system-wide defaults set, this effectively removes the properties from the configuration store entirely.

backend :

The XfconfBackend.

channel :

A channel name.

property :

A property name.

recursive :

Whether or not the reset is recursive.

error :

An error return.

Returns :

The backend should return TRUE if the operation was successful, or FALSE otherwise. On FALSE, error should be set to a description of the failure.

xfconf_backend_flush ()

gboolean            xfconf_backend_flush                (XfconfBackend *backend,
                                                         GError **error);

For backends that support persistent storage, ensures that all configuration data stored in memory is saved to persistent storage.

backend :

The XfconfBackend.

error :

An error return.

Returns :

The backend should return TRUE if the operation was successful, or FALSE otherwise. On FALSE, error should be set to a description of the failure.

xfconf_backend_register_property_changed_func ()

void                xfconf_backend_register_property_changed_func
                                                        (XfconfBackend *backend,
                                                         XfconfPropertyChangedFunc func,
                                                         gpointer user_data);

Registers a function to be called when a property changes. The backend implementation should keep a pointer to func and user_data and call func when a property in the configuration store changes.

backend :

The XfconfBackend.

func :

A function of type XfconfPropertyChangeFunc.

user_data :

Arbitrary caller-supplied data.