summaryrefslogtreecommitdiff
path: root/daemon/gvfsreadchannel.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@src.gnome.org>2007-09-13 10:35:50 +0000
committerAlexander Larsson <alexl@src.gnome.org>2007-09-13 10:35:50 +0000
commit4311de34b4e46bdca9c650f235fb0ab015a0847f (patch)
tree37d40e4966a2d7b2eac5122e944ba6b673910e97 /daemon/gvfsreadchannel.c
parent47f200386b742183ea7a131ef45236e47984be59 (diff)
downloadgvfs-4311de34b4e46bdca9c650f235fb0ab015a0847f.tar.gz
Initial work on the new way to track mountpoints.
Daemon side only. Original git commit by Alexander Larsson <alex@greebo.(none)> at 1165492556 +0100 svn path=/trunk/; revision=219
Diffstat (limited to 'daemon/gvfsreadchannel.c')
-rw-r--r--daemon/gvfsreadchannel.c46
1 files changed, 14 insertions, 32 deletions
diff --git a/daemon/gvfsreadchannel.c b/daemon/gvfsreadchannel.c
index 54a0d2c5..71ad17ff 100644
--- a/daemon/gvfsreadchannel.c
+++ b/daemon/gvfsreadchannel.c
@@ -21,20 +21,16 @@
#include <gvfsjobseekread.h>
#include <gvfsjobcloseread.h>
-G_DEFINE_TYPE (GVfsReadChannel, g_vfs_read_channel, G_TYPE_OBJECT);
+static void g_vfs_read_channel_job_source_iface_init (GVfsJobSourceIface *iface);
-enum {
- PROP_0,
-};
+G_DEFINE_TYPE_WITH_CODE (GVfsReadChannel, g_vfs_read_channel, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (G_TYPE_VFS_JOB_SOURCE,
+ g_vfs_read_channel_job_source_iface_init))
enum {
- NEW_JOB,
- CLOSED,
- LAST_SIGNAL
+ PROP_0,
};
-static guint signals[LAST_SIGNAL] = { 0 };
-
typedef struct
{
GVfsReadChannel *read_channel;
@@ -101,6 +97,11 @@ g_vfs_read_channel_finalize (GObject *object)
}
static void
+g_vfs_read_channel_job_source_iface_init (GVfsJobSourceIface *iface)
+{
+}
+
+static void
g_vfs_read_channel_class_init (GVfsReadChannelClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
@@ -108,25 +109,6 @@ g_vfs_read_channel_class_init (GVfsReadChannelClass *klass)
g_type_class_add_private (klass, sizeof (GVfsReadChannelPrivate));
gobject_class->finalize = g_vfs_read_channel_finalize;
-
- signals[NEW_JOB] =
- g_signal_new ("new_job",
- G_TYPE_FROM_CLASS (gobject_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GVfsReadChannelClass, new_job),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1, G_TYPE_VFS_JOB);
-
- signals[CLOSED] =
- g_signal_new ("closed",
- G_TYPE_FROM_CLASS (gobject_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GVfsReadChannelClass, closed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
}
static void
@@ -150,7 +132,7 @@ g_vfs_read_channel_connection_closed (GVfsReadChannel *channel)
{
channel->priv->current_job = g_vfs_job_close_read_new (channel, channel->priv->backend_handle, channel->priv->backend);
channel->priv->current_job_seq_nr = 0;
- g_signal_emit (channel, signals[NEW_JOB], 0, channel->priv->current_job);
+ g_vfs_job_source_new_job (G_VFS_JOB_SOURCE (channel), channel->priv->current_job);
}
/* Otherwise we'll close when current_job is finished */
}
@@ -230,7 +212,7 @@ got_command (GVfsReadChannel *channel,
{
channel->priv->current_job = job;
channel->priv->current_job_seq_nr = seq_nr;
- g_signal_emit (channel, signals[NEW_JOB], 0, job);
+ g_vfs_job_source_new_job (G_VFS_JOB_SOURCE (channel), channel->priv->current_job);
}
}
@@ -385,7 +367,7 @@ send_reply_cb (GOutputStream *output_stream,
if (G_IS_VFS_JOB_CLOSE_READ (job))
{
- g_signal_emit (channel, signals[CLOSED], 0);
+ g_vfs_job_source_closed (G_VFS_JOB_SOURCE (channel));
channel->priv->backend_handle = NULL;
}
else if (channel->priv->connection_closed)
@@ -393,7 +375,7 @@ send_reply_cb (GOutputStream *output_stream,
channel->priv->current_job = g_vfs_job_close_read_new (channel, channel->priv->backend_handle,
channel->priv->backend);
channel->priv->current_job_seq_nr = 0;
- g_signal_emit (channel, signals[NEW_JOB], 0, channel->priv->current_job);
+ g_vfs_job_source_new_job (G_VFS_JOB_SOURCE (channel), channel->priv->current_job);
}
g_object_unref (job);