summaryrefslogtreecommitdiff
path: root/client/gdaemonvolumemonitor.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2007-10-19 12:38:04 +0000
committerAlexander Larsson <alexl@src.gnome.org>2007-10-19 12:38:04 +0000
commit03efc95f9c39169c15d74aed92c5e11178172570 (patch)
tree4edc0b69480b91564e50120cee8631f1eaacc3fb /client/gdaemonvolumemonitor.c
parent7fb7b8f71c79bfb75f57babfaf8fedbceb9afdb2 (diff)
downloadgvfs-03efc95f9c39169c15d74aed92c5e11178172570.tar.gz
Implement using DEFINE_DYNAMIC_TYPE Actually register GDaemonVolumeMonitor
2007-10-19 Alexander Larsson <alexl@redhat.com> * client/gdaemonvfs.[ch]: * client/gdaemonvolume.c: * client/gdaemonvolumemonitor.[ch]: Implement using DEFINE_DYNAMIC_TYPE Actually register GDaemonVolumeMonitor in giomodule * common/gmounttracker.c: Update to the on-dbus format for mounts svn path=/trunk/; revision=983
Diffstat (limited to 'client/gdaemonvolumemonitor.c')
-rw-r--r--client/gdaemonvolumemonitor.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/client/gdaemonvolumemonitor.c b/client/gdaemonvolumemonitor.c
index c33b6021..82b887ed 100644
--- a/client/gdaemonvolumemonitor.c
+++ b/client/gdaemonvolumemonitor.c
@@ -15,16 +15,18 @@ struct _GDaemonVolumeMonitor {
GList *volumes;
};
-G_DEFINE_TYPE (GDaemonVolumeMonitor, g_daemon_volume_monitor, G_TYPE_VOLUME_MONITOR);
+G_DEFINE_DYNAMIC_TYPE (GDaemonVolumeMonitor, g_daemon_volume_monitor, G_TYPE_VOLUME_MONITOR);
static GList *
get_mounted_volumes (GVolumeMonitor *volume_monitor)
{
GDaemonVolumeMonitor *monitor;
GList *l;
-
+
monitor = G_DAEMON_VOLUME_MONITOR (volume_monitor);
+ g_print ("get_mounted_volumes (daemon): %d\n", g_list_length (monitor->volumes));
+
l = g_list_copy (monitor->volumes);
g_list_foreach (l, (GFunc)g_object_ref, NULL);
@@ -97,12 +99,26 @@ mount_removed (GDaemonVolumeMonitor *daemon_monitor, GMountInfo *mount_info)
static void
g_daemon_volume_monitor_init (GDaemonVolumeMonitor *daemon_monitor)
{
+ GList *mounts, *l;
+ GDaemonVolume *volume;
+
daemon_monitor->mount_tracker = g_mount_tracker_new (_g_daemon_vfs_get_async_bus ());
g_signal_connect_swapped (daemon_monitor->mount_tracker, "mounted",
(GCallback) mount_added, daemon_monitor);
g_signal_connect_swapped (daemon_monitor->mount_tracker, "unmounted",
(GCallback) mount_removed, daemon_monitor);
+
+ /* Initialize with current list */
+ mounts = g_mount_tracker_list_mounts (daemon_monitor->mount_tracker);
+
+ g_print ("Number of mounts: %d\n", g_list_length (mounts));
+ for (l = mounts; l != NULL; l = l->next) {
+ volume = g_daemon_volume_new (G_VOLUME_MONITOR (daemon_monitor), l->data);
+ daemon_monitor->volumes = g_list_prepend (daemon_monitor->volumes, volume);
+ }
+
+ g_list_free (mounts);
}
static void
@@ -125,6 +141,11 @@ g_daemon_volume_monitor_finalize (GObject *object)
}
static void
+g_daemon_volume_monitor_class_finalize (GDaemonVolumeMonitorClass *klass)
+{
+}
+
+static void
g_daemon_volume_monitor_class_init (GDaemonVolumeMonitorClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
@@ -146,3 +167,8 @@ g_daemon_volume_monitor_new (void)
return G_VOLUME_MONITOR (monitor);
}
+void
+g_daemon_volume_monitor_register_types (GTypeModule *module)
+{
+ g_daemon_volume_monitor_register_type (G_TYPE_MODULE (module));
+}