diff options
author | Ryan Lortie <desrt@desrt.ca> | 2013-01-07 18:28:40 -0500 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2013-01-08 13:19:30 -0500 |
commit | 4ed6cd42312e600e44414b4a9f5ae4f232937a18 (patch) | |
tree | b1b58039d9b29c7b9f9c8853c20c12e65c3774cf /service | |
parent | a2bad17d26b596ef46fd2e9c60b9e0163a51012d (diff) | |
download | dconf-4ed6cd42312e600e44414b4a9f5ae4f232937a18.tar.gz |
writer: move instance and class struct into header
...and add a lot of ->priv.
This is not a public API because this header doesn't get installed, but
it can now be used by other things in-tree.
Diffstat (limited to 'service')
-rw-r--r-- | service/dconf-writer.c | 83 | ||||
-rw-r--r-- | service/dconf-writer.h | 32 |
2 files changed, 67 insertions, 48 deletions
diff --git a/service/dconf-writer.c b/service/dconf-writer.c index 2781f13..05519a1 100644 --- a/service/dconf-writer.c +++ b/service/dconf-writer.c @@ -33,9 +33,8 @@ #include <errno.h> #include <stdio.h> -typedef struct +struct _DConfWriterPrivate { - DConfDBusWriterSkeleton parent_instance; gchar *filename; gboolean native; gchar *name; @@ -46,7 +45,7 @@ typedef struct GQueue uncommited_changes; GQueue commited_changes; -} DConfWriter; +}; typedef struct { @@ -54,21 +53,6 @@ typedef struct gchar *tag; } TaggedChange; -typedef struct -{ - DConfDBusWriterSkeletonClass parent_instance; - - gboolean (* begin) (DConfWriter *writer, - GError **error); - void (* change) (DConfWriter *writer, - DConfChangeset *changeset, - const gchar *tag); - gboolean (* commit) (DConfWriter *writer, - GError **error); - void (* end) (DConfWriter *writer); -} DConfWriterClass; - - static void dconf_writer_iface_init (DConfDBusWriterIface *iface); G_DEFINE_TYPE_WITH_CODE (DConfWriter, dconf_writer, DCONF_DBUS_TYPE_WRITER_SKELETON, @@ -83,7 +67,7 @@ dconf_writer_get_tag (DConfWriter *writer) return g_strdup_printf ("%s:%s:%" G_GUINT64_FORMAT, g_dbus_connection_get_unique_name (connection), - writer->name, writer->tag++); + writer->priv->name, writer->priv->tag++); } static gboolean @@ -93,15 +77,15 @@ dconf_writer_real_begin (DConfWriter *writer, /* If this is the first time, populate the value table with the * existing values. */ - if (writer->commited_values == NULL) + if (writer->priv->commited_values == NULL) { - writer->commited_values = dconf_gvdb_utils_read_file (writer->filename, error); + writer->priv->commited_values = dconf_gvdb_utils_read_file (writer->priv->filename, error); - if (!writer->commited_values) + if (!writer->priv->commited_values) return FALSE; } - writer->uncommited_values = dconf_changeset_new_database (writer->commited_values); + writer->priv->uncommited_values = dconf_changeset_new_database (writer->priv->commited_values); return TRUE; } @@ -111,9 +95,9 @@ dconf_writer_real_change (DConfWriter *writer, DConfChangeset *changeset, const gchar *tag) { - g_return_if_fail (writer->uncommited_values != NULL); + g_return_if_fail (writer->priv->uncommited_values != NULL); - dconf_changeset_change (writer->uncommited_values, changeset); + dconf_changeset_change (writer->priv->uncommited_values, changeset); if (tag) { @@ -123,7 +107,7 @@ dconf_writer_real_change (DConfWriter *writer, change->changeset = dconf_changeset_ref (changeset); change->tag = g_strdup (tag); - g_queue_push_tail (&writer->uncommited_changes, change); + g_queue_push_tail (&writer->priv->uncommited_changes, change); } } @@ -131,23 +115,23 @@ static gboolean dconf_writer_real_commit (DConfWriter *writer, GError **error) { - if (!dconf_gvdb_utils_write_file (writer->filename, writer->uncommited_values, error)) + if (!dconf_gvdb_utils_write_file (writer->priv->filename, writer->priv->uncommited_values, error)) return FALSE; - if (writer->native) - dconf_shm_flag (writer->name); + if (writer->priv->native) + dconf_shm_flag (writer->priv->name); - if (writer->commited_values) - dconf_changeset_unref (writer->commited_values); - writer->commited_values = writer->uncommited_values; - writer->uncommited_values = NULL; + if (writer->priv->commited_values) + dconf_changeset_unref (writer->priv->commited_values); + writer->priv->commited_values = writer->priv->uncommited_values; + writer->priv->uncommited_values = NULL; { GQueue empty_queue = G_QUEUE_INIT; - g_assert (g_queue_is_empty (&writer->commited_changes)); - writer->commited_changes = writer->uncommited_changes; - writer->uncommited_changes = empty_queue; + g_assert (g_queue_is_empty (&writer->priv->commited_changes)); + writer->priv->commited_changes = writer->priv->uncommited_changes; + writer->priv->uncommited_changes = empty_queue; } return TRUE; @@ -156,16 +140,16 @@ dconf_writer_real_commit (DConfWriter *writer, static void dconf_writer_real_end (DConfWriter *writer) { - while (!g_queue_is_empty (&writer->uncommited_changes)) + while (!g_queue_is_empty (&writer->priv->uncommited_changes)) { - TaggedChange *change = g_queue_pop_head (&writer->uncommited_changes); + TaggedChange *change = g_queue_pop_head (&writer->priv->uncommited_changes); g_free (change->tag); g_slice_free (TaggedChange, change); } - while (!g_queue_is_empty (&writer->commited_changes)) + while (!g_queue_is_empty (&writer->priv->commited_changes)) { - TaggedChange *change = g_queue_pop_head (&writer->commited_changes); + TaggedChange *change = g_queue_pop_head (&writer->priv->commited_changes); const gchar *prefix; const gchar * const *paths; @@ -176,7 +160,7 @@ dconf_writer_real_end (DConfWriter *writer) g_slice_free (TaggedChange, change); } - g_clear_pointer (&writer->uncommited_values, dconf_changeset_unref); + g_clear_pointer (&writer->priv->uncommited_values, dconf_changeset_unref); } gboolean @@ -293,7 +277,8 @@ dconf_writer_iface_init (DConfDBusWriterIface *iface) static void dconf_writer_init (DConfWriter *writer) { - writer->native = TRUE; + writer->priv = G_TYPE_INSTANCE_GET_PRIVATE (writer, DCONF_TYPE_WRITER, DConfWriterPrivate); + writer->priv->native = TRUE; } static void @@ -304,13 +289,13 @@ dconf_writer_set_property (GObject *object, guint prop_id, g_assert_cmpint (prop_id, ==, 1); - g_assert (!writer->name); - writer->name = g_value_dup_string (value); + g_assert (!writer->priv->name); + writer->priv->name = g_value_dup_string (value); - if (writer->native) - writer->filename = g_build_filename (g_get_user_config_dir (), "dconf", writer->name, NULL); + if (writer->priv->native) + writer->priv->filename = g_build_filename (g_get_user_config_dir (), "dconf", writer->priv->name, NULL); else - writer->filename = g_build_filename (g_get_user_runtime_dir (), "dconf", writer->name, NULL); + writer->priv->filename = g_build_filename (g_get_user_runtime_dir (), "dconf", writer->priv->name, NULL); } static void @@ -329,12 +314,14 @@ dconf_writer_class_init (DConfWriterClass *class) g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE)); + + g_type_class_add_private (class, sizeof (DConfWriterPrivate)); } const gchar * dconf_writer_get_name (DConfWriter *writer) { - return writer->name; + return writer->priv->name; } GDBusInterfaceSkeleton * diff --git a/service/dconf-writer.h b/service/dconf-writer.h index 08183e7..eb00422 100644 --- a/service/dconf-writer.h +++ b/service/dconf-writer.h @@ -24,14 +24,46 @@ #include <gio/gio.h> +#include "../common/dconf-changeset.h" +#include "dconf-generated.h" + #define DCONF_TYPE_WRITER (dconf_writer_get_type ()) #define DCONF_WRITER(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ DCONF_TYPE_WRITER, DConfWriter)) +#define DCONF_WRITER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + DCONF_TYPE_WRITER, DConfWriterClass) #define DCONF_IS_WRITER(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ DCONF_TYPE_WRITER)) +#define DCONF_IS_WRITER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + DCONF_TYPE_WRITER)) #define DCONF_WRITER_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ DCONF_TYPE_WRITER, DConfWriterClass)) +typedef struct _DConfWriterPrivate DConfWriterPrivate; +typedef struct _DConfWriterClass DConfWriterClass; +typedef struct _DConfWriter DConfWriter; + +struct _DConfWriterClass +{ + DConfDBusWriterSkeletonClass parent_instance; + + /* instance methods */ + gboolean (* begin) (DConfWriter *writer, + GError **error); + void (* change) (DConfWriter *writer, + DConfChangeset *changeset, + const gchar *tag); + gboolean (* commit) (DConfWriter *writer, + GError **error); + void (* end) (DConfWriter *writer); +}; + +struct _DConfWriter +{ + DConfDBusWriterSkeleton parent_instance; + DConfWriterPrivate *priv; +}; + GDBusInterfaceSkeleton *dconf_writer_new (const gchar *filename); #endif /* __dconf_writer_h__ */ |