From: barbieri Date: Mon, 8 Jun 2009 14:32:17 +0000 (+0000) Subject: start service by name requires one more parameter (flags). X-Git-Tag: 2.0_alpha~43^2~357 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=664b839bb1f0b776abf12f16226533a40e5e37e2;p=framework%2Fuifw%2Fedbus.git start service by name requires one more parameter (flags). The dbus api has a "flags" parameter that is now unused but may be in future, it was missing and dbus was giving method mismatch. I forgot to commit this but changed Ethumb_Client, then Viktor "fixed" it by reverting such change. Now going back to my code and adding "0" as flag. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@40968 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/dbus/E_DBus.h b/src/lib/dbus/E_DBus.h index 1534512..427f806 100644 --- a/src/lib/dbus/E_DBus.h +++ b/src/lib/dbus/E_DBus.h @@ -130,7 +130,7 @@ extern "C" { EAPI DBusPendingCall *e_dbus_name_has_owner(E_DBus_Connection *conn, const char *name, E_DBus_Method_Return_Cb cb_return, const void *data); - EAPI DBusPendingCall *e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, + EAPI DBusPendingCall *e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, unsigned int flags, E_DBus_Method_Return_Cb cb_return, const void *data); diff --git a/src/lib/dbus/e_dbus_methods.c b/src/lib/dbus/e_dbus_methods.c index a3f70e2..c9de2f7 100644 --- a/src/lib/dbus/e_dbus_methods.c +++ b/src/lib/dbus/e_dbus_methods.c @@ -122,7 +122,30 @@ e_dbus_name_has_owner(E_DBus_Connection *conn, const char *name, E_DBus_Method_R EAPI DBusPendingCall * -e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, E_DBus_Method_Return_Cb cb_return, const void *data) +e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, unsigned int flags, E_DBus_Method_Return_Cb cb_return, const void *data) { - return _dbus_call__str(conn, "StartServiceByName", name, cb_return, data); + const char method_name[] = "StartServiceByName"; + DBusMessage *msg; + DBusPendingCall *ret; + + if (!conn) + { + fprintf(stderr, "ERROR: no connection for call of %s\n", method_name); + return NULL; + } + + msg = _dbus_message_method_call(method_name); + if (!msg) + return NULL; + dbus_message_append_args(msg, + DBUS_TYPE_STRING, &name, + DBUS_TYPE_UINT32, &flags, + DBUS_TYPE_INVALID); + ret = e_dbus_message_send(conn, msg, cb_return, -1, (void *)data); + dbus_message_unref(msg); + + if (!ret) + fprintf(stderr, "ERROR: failed to call %s(\"%s\")\n", method_name, name); + + return ret; }