summaryrefslogtreecommitdiff
path: root/libsecret
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@src.gnome.org>2019-06-30 05:52:01 +0200
committerDaiki Ueno <ueno@gnu.org>2019-10-08 07:55:55 +0000
commite6456698ec6c3ef00a3e8726bc78096a60d8fc35 (patch)
treeae6a2f5810090b99ae24327152121252b815a95a /libsecret
parent616a967e60615337ccd0b3fdcb9dcb8892941126 (diff)
downloadlibsecret-e6456698ec6c3ef00a3e8726bc78096a60d8fc35.tar.gz
secret-service: Move parent property setting to constructor
This makes it possible to instantiate a SecretService instance directly through g_initable_new() or g_async_initable_new_async().
Diffstat (limited to 'libsecret')
-rw-r--r--libsecret/secret-service.c71
1 files changed, 34 insertions, 37 deletions
diff --git a/libsecret/secret-service.c b/libsecret/secret-service.c
index 6dea0d1..f99fd7e 100644
--- a/libsecret/secret-service.c
+++ b/libsecret/secret-service.c
@@ -509,6 +509,38 @@ secret_service_real_get_item_gtype (SecretService *self)
return klass->item_gtype;
}
+static const gchar *
+get_default_bus_name (void)
+{
+ const gchar *bus_name;
+
+ bus_name = g_getenv ("SECRET_SERVICE_BUS_NAME");
+ if (bus_name == NULL)
+ bus_name = SECRET_SERVICE_BUS_NAME;
+
+ return bus_name;
+}
+
+static GObject *
+secret_service_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GObject *object;
+
+ object = G_OBJECT_CLASS (secret_service_parent_class)->
+ constructor (type, n_construct_properties, construct_properties);
+ g_object_set (object,
+ "g-flags", G_DBUS_PROXY_FLAGS_NONE,
+ "g-interface-info", _secret_gen_service_interface_info (),
+ "g-name", get_default_bus_name (),
+ "g-bus-type", G_BUS_TYPE_SESSION,
+ "g-object-path", SECRET_SERVICE_PATH,
+ "g-interface-name", SECRET_SERVICE_INTERFACE,
+ NULL);
+ return object;
+}
+
static void
secret_service_class_init (SecretServiceClass *klass)
{
@@ -519,6 +551,7 @@ secret_service_class_init (SecretServiceClass *klass)
object_class->set_property = secret_service_set_property;
object_class->dispose = secret_service_dispose;
object_class->finalize = secret_service_finalize;
+ object_class->constructor = secret_service_constructor;
proxy_class->g_properties_changed = secret_service_properties_changed;
proxy_class->g_signal = secret_service_signal;
@@ -745,18 +778,6 @@ secret_service_async_initable_iface (GAsyncInitableIface *iface)
iface->init_finish = secret_service_async_initable_init_finish;
}
-static const gchar *
-get_default_bus_name (void)
-{
- const gchar *bus_name;
-
- bus_name = g_getenv ("SECRET_SERVICE_BUS_NAME");
- if (bus_name == NULL)
- bus_name = SECRET_SERVICE_BUS_NAME;
-
- return bus_name;
-}
-
/**
* secret_service_get:
* @flags: flags for which service functionality to ensure is initialized
@@ -788,13 +809,7 @@ secret_service_get (SecretServiceFlags flags,
if (service == NULL) {
g_async_initable_new_async (SECRET_TYPE_SERVICE, G_PRIORITY_DEFAULT,
cancellable, callback, user_data,
- "g-flags", G_DBUS_PROXY_FLAGS_NONE,
- "g-interface-info", _secret_gen_service_interface_info (),
- "g-name", get_default_bus_name (),
- "g-bus-type", G_BUS_TYPE_SESSION,
- "g-object-path", SECRET_SERVICE_PATH,
- "g-interface-name", SECRET_SERVICE_INTERFACE,
- "flags", flags,
+ "flags", flags,
NULL);
/* Just have to ensure that the service matches flags */
@@ -890,12 +905,6 @@ secret_service_get_sync (SecretServiceFlags flags,
if (service == NULL) {
service = g_initable_new (SECRET_TYPE_SERVICE, cancellable, error,
- "g-flags", G_DBUS_PROXY_FLAGS_NONE,
- "g-interface-info", _secret_gen_service_interface_info (),
- "g-name", get_default_bus_name (),
- "g-bus-type", G_BUS_TYPE_SESSION,
- "g-object-path", SECRET_SERVICE_PATH,
- "g-interface-name", SECRET_SERVICE_INTERFACE,
"flags", flags,
NULL);
@@ -970,12 +979,6 @@ secret_service_open (GType service_gtype,
g_async_initable_new_async (service_gtype, G_PRIORITY_DEFAULT,
cancellable, callback, user_data,
- "g-flags", G_DBUS_PROXY_FLAGS_NONE,
- "g-interface-info", _secret_gen_service_interface_info (),
- "g-name", service_bus_name,
- "g-bus-type", G_BUS_TYPE_SESSION,
- "g-object-path", SECRET_SERVICE_PATH,
- "g-interface-name", SECRET_SERVICE_INTERFACE,
"flags", flags,
NULL);
}
@@ -1052,12 +1055,6 @@ secret_service_open_sync (GType service_gtype,
service_bus_name = get_default_bus_name ();
return g_initable_new (service_gtype, cancellable, error,
- "g-flags", G_DBUS_PROXY_FLAGS_NONE,
- "g-interface-info", _secret_gen_service_interface_info (),
- "g-name", service_bus_name,
- "g-bus-type", G_BUS_TYPE_SESSION,
- "g-object-path", SECRET_SERVICE_PATH,
- "g-interface-name", SECRET_SERVICE_INTERFACE,
"flags", flags,
NULL);
}