diff options
author | Alexander Larsson <alexl@redhat.com> | 2007-10-19 12:38:04 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2007-10-19 12:38:04 +0000 |
commit | 03efc95f9c39169c15d74aed92c5e11178172570 (patch) | |
tree | 4edc0b69480b91564e50120cee8631f1eaacc3fb /client/gdaemonvolumemonitor.c | |
parent | 7fb7b8f71c79bfb75f57babfaf8fedbceb9afdb2 (diff) | |
download | gvfs-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.c | 30 |
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)); +} |