static void do_volume_tests (GDrive *drive, GVolume *volume) { GDrive *d; gchar *name; GMount *mount; gchar *uuid; name = g_volume_get_name (volume); g_assert (name != NULL); g_free (name); d = g_volume_get_drive (volume); g_assert (d == drive); if (d != NULL) g_object_unref (d); mount = g_volume_get_mount (volume); if (mount != NULL) { do_mount_tests (drive, volume, mount); g_object_unref (mount); } uuid = g_volume_get_uuid (volume); if (uuid) { GVolume *v; v = g_volume_monitor_get_volume_for_uuid (monitor, uuid); g_assert (v == volume); g_object_unref (v); g_free (uuid); } }
static GVolume * get_volume_for_uuid (GVolumeMonitor *volume_monitor, const char *uuid) { GUnionVolumeMonitor *monitor; GVolumeMonitor *child_monitor; GVolume *volume; GList *l; monitor = G_UNION_VOLUME_MONITOR (volume_monitor); volume = NULL; g_rec_mutex_lock (&the_volume_monitor_mutex); for (l = monitor->monitors; l != NULL; l = l->next) { child_monitor = l->data; volume = g_volume_monitor_get_volume_for_uuid (child_monitor, uuid); if (volume != NULL) break; } g_rec_mutex_unlock (&the_volume_monitor_mutex); return volume; }
static VALUE rg_get_volume_for_uuid(VALUE self, VALUE value) { return GOBJ2RVAL_UNREF(g_volume_monitor_get_volume_for_uuid(_SELF(self), RVAL2CSTR(value))); }