summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <sandmann@redhat.com>2009-04-15 07:55:02 -0400
committerSøren Sandmann Pedersen <sandmann@redhat.com>2009-04-15 07:55:02 -0400
commit47094257f88856e96ede799bf44810ac62d373c7 (patch)
tree24999e36068684c693e3245b8bd5229e9ed4b261
parentdc9f4ee427f87f4d9b15d3368f05ce31b6b4f516 (diff)
Replace nul_dbus_add_object() with nul_dbus_set_object_data()
-rw-r--r--dbus.c23
-rw-r--r--dbw-example.c43
-rw-r--r--libnul.h7
3 files changed, 35 insertions, 38 deletions
diff --git a/dbus.c b/dbus.c
index f2b1041..12c425d 100644
--- a/dbus.c
+++ b/dbus.c
@@ -783,16 +783,6 @@ nul_dbus_session_service (const char *name,
return service;
}
-void
-nul_dbus_service_add_object (nul_dbus_service_t *service,
- nul_dbus_object_t *object)
-{
- service->objects = nul_ptr_array_append (service->objects, object);
-
- dbus_connection_register_object_path (
- service->connection, object->name, &vtable, object);
-}
-
gboolean
nul_dbus_service_start (nul_dbus_service_t *service)
{
@@ -1355,3 +1345,16 @@ nul_dbus_invoke (nul_dbus_service_t *service,
dbus_message_unref (message);
}
+
+void
+nul_dbus_service_set_object_data (nul_dbus_service_t *service,
+ const char *obj_name,
+ gpointer data)
+{
+ nul_dbus_object_t *object = find_object (service, obj_name);
+
+ g_return_if_fail (object != NULL);
+
+ object->data = data;
+}
+
diff --git a/dbw-example.c b/dbw-example.c
index 4ef5c33..77fc279 100644
--- a/dbw-example.c
+++ b/dbw-example.c
@@ -87,33 +87,28 @@ make_service1 (void)
NULL);
}
-static nul_dbus_object_t *
-make_object2 (gpointer data)
+static nul_dbus_service_t *
+make_service2 (gpointer data)
{
- return nul_dbus_object (
- "/org/gnome/siv",
- data,
-
- nul_dbus_interface (
- "org.gnome.siv",
+ return nul_dbus_session_service (
+ "org.gnome.siv",
+ nul_dbus_object (
+ "/org/gnome/siv",
+ data,
- nul_dbus_method (
- "load_image",
- (nul_dbus_function_t)load_image,
- nul_dbus_parameter_in ("image", nul_dbus_type_string()),
- nul_dbus_parameter_out ("result", nul_dbus_type_int32()),
+ nul_dbus_interface (
+ "org.gnome.siv",
+
+ nul_dbus_method (
+ "load_image",
+ (nul_dbus_function_t)load_image,
+ nul_dbus_parameter_in ("image", nul_dbus_type_string()),
+ nul_dbus_parameter_out ("result", nul_dbus_type_int32()),
+ NULL),
+
NULL),
NULL),
-
- NULL);
-}
-
-static nul_dbus_service_t *
-make_service2 (void)
-{
- return nul_dbus_session_service (
- "org.gnome.siv",
NULL);
}
@@ -171,15 +166,13 @@ main ()
GMainLoop *loop = g_main_loop_new (NULL, TRUE);
service = make_service1 ();
- service2 = make_service2 ();
+ service2 = make_service2 ("hi");
if (!nul_dbus_service_start (service2))
{
g_print ("siv already exists, asking it to load the images instead\n");
}
- nul_dbus_service_add_object (service2, make_object2("hi"));
-
if (!nul_dbus_service_start (service))
{
g_print ("Couldn't start the service\n");
diff --git a/libnul.h b/libnul.h
index b3e9955..5cef6d1 100644
--- a/libnul.h
+++ b/libnul.h
@@ -293,9 +293,10 @@ nul_dbus_parameter_t *nul_dbus_parameter_out (const char *name,
const nul_dbus_type_t *type);
gboolean nul_dbus_service_start (nul_dbus_service_t *service);
void nul_dbus_service_stop (nul_dbus_service_t *service);
-void nul_dbus_service_add_object (nul_dbus_service_t *service,
- nul_dbus_object_t *object);
-
+void nul_dbus_service_set_object_data (nul_dbus_service_t *service,
+ const char *obj_name,
+ gpointer data);
+
/* The returned values here are automatically freed at idle. You
* must copy them if you want to keep them around
*/