Enlightenment CVS committal Author : rephorm Project : e17 Module : proto
Dir : e17/proto/e_dbus/src/bin Modified Files: hal.c Log Message: playing around with the api a bit - use a single callback instead of separate reply / error callbacks =================================================================== RCS file: /cvs/e/e17/proto/e_dbus/src/bin/hal.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- hal.c 15 Mar 2007 08:59:18 -0000 1.1 +++ hal.c 20 Mar 2007 06:34:13 -0000 1.2 @@ -142,12 +142,19 @@ } static void -cb_storage_properties(void *data, void *reply_data) +cb_storage_properties(void *data, void *reply_data, DBusError *error) { Storage *s = data; E_Hal_Properties *ret = reply_data; int err = 0; + if (dbus_error_is_set(error)) + { + // XXX handle... + dbus_error_free(error); + goto error; + } + s->bus = e_hal_property_string_get(ret, "storage.bus", &err); if (err) goto error; s->drive_type = e_hal_property_string_get(ret, "storage.drive_type", &err); @@ -252,7 +259,7 @@ } static void -cb_volume_properties(void *data, void *reply_data) +cb_volume_properties(void *data, void *reply_data, DBusError *error) { Volume *v = data; Storage *s = NULL; @@ -260,6 +267,13 @@ int err = 0; char *str = NULL; + if (dbus_error_is_set(error)) + { + // XXX handle... + dbus_error_free(error); + goto error; + } + /* skip volumes with volume.ignore set */ if (e_hal_property_bool_get(ret, "volume.ignore", &err) || err) goto error; @@ -346,13 +360,20 @@ } static void -cb_test_get_all_devices(void *user_data, void *reply_data) +cb_test_get_all_devices(void *user_data, void *reply_data, DBusError *error) { E_Hal_Manager_Get_All_Devices_Return *ret = reply_data; char *device; if (!ret || !ret->strings) return; + if (dbus_error_is_set(error)) + { + // XXX handle... + dbus_error_free(error); + return; + } + ecore_list_goto_first(ret->strings); while ((device = ecore_list_next(ret->strings))) { @@ -361,52 +382,82 @@ } static void -cb_test_find_device_by_capability_storage(void *user_data, void *reply_data) +cb_test_find_device_by_capability_storage(void *user_data, void *reply_data, DBusError *error) { E_Hal_Manager_Find_Device_By_Capability_Return *ret = reply_data; char *device; if (!ret || !ret->strings) return; + if (dbus_error_is_set(error)) + { + // XXX handle... + dbus_error_free(error); + return; + } + ecore_list_goto_first(ret->strings); while ((device = ecore_list_next(ret->strings))) storage_append(device); } static void -cb_test_find_device_by_capability_volume(void *user_data, void *reply_data) +cb_test_find_device_by_capability_volume(void *user_data, void *reply_data, DBusError *error) { E_Hal_Manager_Find_Device_By_Capability_Return *ret = reply_data; char *device; if (!ret || !ret->strings) return; + if (dbus_error_is_set(error)) + { + // XXX handle... + dbus_error_free(error); + return; + } + ecore_list_goto_first(ret->strings); while ((device = ecore_list_next(ret->strings))) volume_append(device); } static void -cb_is_storage(void *user_data, void *reply_data) +cb_is_storage(void *user_data, void *reply_data, DBusError *error) { char *udi = user_data; E_Hal_Device_Query_Capability_Return *ret = reply_data; + if (dbus_error_is_set(error)) + { + // XXX handle... + dbus_error_free(error); + goto error; + } + if (ret && ret->boolean) storage_append(udi); +error: free(udi); } static void -cb_is_volume(void *user_data, void *reply_data) +cb_is_volume(void *user_data, void *reply_data, DBusError *error) { char *udi = user_data; E_Hal_Device_Query_Capability_Return *ret = reply_data; + if (dbus_error_is_set(error)) + { + // XXX handle... + dbus_error_free(error); + goto error; + } + if (ret && ret->boolean) volume_append(udi); +error: free(udi); } @@ -452,18 +503,6 @@ storage_append(udi); } - -static void -cb_test_device_exists(void *user_data, void *reply_data) -{ - E_Hal_Manager_Device_Exists_Return *ret = reply_data; - char *device = user_data; - - if (!ret) return; - - //printf("device %s: %s\n", ret->boolean ? "exists" : "does not exist", device); -} - /*** gui ***/ ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs