diff options
author | Søren Sandmann Pedersen <sandmann@redhat.com> | 2009-04-15 07:55:02 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <sandmann@redhat.com> | 2009-04-15 07:55:02 -0400 |
commit | 47094257f88856e96ede799bf44810ac62d373c7 (patch) | |
tree | 24999e36068684c693e3245b8bd5229e9ed4b261 | |
parent | dc9f4ee427f87f4d9b15d3368f05ce31b6b4f516 (diff) |
Replace nul_dbus_add_object() with nul_dbus_set_object_data()
-rw-r--r-- | dbus.c | 23 | ||||
-rw-r--r-- | dbw-example.c | 43 | ||||
-rw-r--r-- | libnul.h | 7 |
3 files changed, 35 insertions, 38 deletions
@@ -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"); @@ -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 */ |