diff options
author | Ryan Lortie <desrt@desrt.ca> | 2012-07-01 13:31:49 -0400 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2012-07-01 13:38:50 -0400 |
commit | b132b06ef9a106332dbe5002ca42873ef1de8748 (patch) | |
tree | 69ebdc4a856cfcac58bab27a0cc3a13220caf939 /service/dconf-writer.c | |
parent | c2f09990517c6569cf356c369754184491123074 (diff) | |
download | dconf-b132b06ef9a106332dbe5002ca42873ef1de8748.tar.gz |
service: introduce a new Changeset-based method
Add a "Change" method to the service for writing DConfChangesets.
Diffstat (limited to 'service/dconf-writer.c')
-rw-r--r-- | service/dconf-writer.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/service/dconf-writer.c b/service/dconf-writer.c index 3f2aeee..4218977 100644 --- a/service/dconf-writer.c +++ b/service/dconf-writer.c @@ -128,6 +128,29 @@ dconf_writer_write_many (DConfWriter *writer, return TRUE; } +gboolean +dconf_writer_change (DConfWriter *writer, + DConfChangeset *change, + GError **error) +{ + const gchar * const *keys; + GVariant * const *values; + const gchar *prefix; + gint n_items; + + n_items = dconf_changeset_describe (change, &prefix, &keys, &values); + + if (!n_items) + return TRUE; + + if (!dconf_rebuilder_rebuild (writer->path, prefix, keys, values, n_items, error)) + return FALSE; + + dconf_writer_touch_shm (writer); + + return TRUE; +} + const gchar * dconf_writer_get_name (DConfWriter *writer) { |