Enlightenment CVS committal Author : shorne Project : e17 Module : proto
Dir : e17/proto/e_dbus/src/lib/dbus Modified Files: E_DBus.h e_dbus_object.c Log Message: Small Changes * Fixed bus in properties setter (Not tested) * Allow to detach interfaces from objects (Module unloading) * add close function to header =================================================================== RCS file: /cvs/e/e17/proto/e_dbus/src/lib/dbus/E_DBus.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- E_DBus.h 11 Jul 2007 00:48:17 -0000 1.12 +++ E_DBus.h 23 Jul 2007 12:30:25 -0000 1.13 @@ -46,12 +46,14 @@ void e_dbus_connection_unref(E_DBus_Connection *conn); E_DBus_Connection *e_dbus_connection_setup(DBusConnection *conn); +void e_dbus_connection_close(E_DBus_Connection *conn); /* receiving method calls */ E_DBus_Interface *e_dbus_interface_new(const char *interface); void e_dbus_interface_ref(E_DBus_Interface *iface); void e_dbus_interface_unref(E_DBus_Interface *iface); void e_dbus_object_interface_attach(E_DBus_Object *obj, E_DBus_Interface *iface); +void e_dbus_object_interface_detach(E_DBus_Object *obj, E_DBus_Interface *iface); int e_dbus_interface_method_add(E_DBus_Interface *iface, const char *member, const char *signature, const char *reply_signature, E_DBus_Method_Cb func); E_DBus_Object *e_dbus_object_add(E_DBus_Connection *conn, const char *object_path, void *data); =================================================================== RCS file: /cvs/e/e17/proto/e_dbus/src/lib/dbus/e_dbus_object.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- e_dbus_object.c 11 Jul 2007 00:48:17 -0000 1.11 +++ e_dbus_object.c 23 Jul 2007 12:30:25 -0000 1.12 @@ -141,7 +141,7 @@ char *property; dbus_message_iter_init(msg, &iter); - dbus_message_iter_get_basic(&sub, &property); + dbus_message_iter_get_basic(&iter, &property); dbus_message_iter_recurse(&iter, &sub); type = dbus_message_iter_get_arg_type(&sub); if (dbus_type_is_basic(type)) @@ -284,6 +284,20 @@ ecore_list_append(obj->interfaces, iface); obj->introspection_dirty = 1; DEBUG(4, "e_dbus_object_interface_attach (%s, %s) ", obj->path, iface->name); +} + +void +e_dbus_object_interface_detach(E_DBus_Object *obj, E_DBus_Interface *iface) +{ + E_DBus_Interface *found; + + DEBUG(4, "e_dbus_object_interface_detach (%s, %s) ", obj->path, iface->name); + found = ecore_list_goto(obj->interfaces, iface); + if (found == NULL) return; + + ecore_dlist_remove(obj->interfaces); + obj->introspection_dirty = 1; + e_dbus_interface_unref(iface); } void ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs