diff options
Diffstat (limited to 'daemon/gvfschannel.h')
-rw-r--r-- | daemon/gvfschannel.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/daemon/gvfschannel.h b/daemon/gvfschannel.h new file mode 100644 index 00000000..61a76fe0 --- /dev/null +++ b/daemon/gvfschannel.h @@ -0,0 +1,66 @@ +#ifndef __G_VFS_CHANNEL_H__ +#define __G_VFS_CHANNEL_H__ + +#include <glib-object.h> +#include <gio/gvfstypes.h> +#include <gvfsjob.h> +#include <gvfsbackend.h> +#include <gvfsdaemonprotocol.h> + +G_BEGIN_DECLS + +#define G_TYPE_VFS_CHANNEL (g_vfs_channel_get_type ()) +#define G_VFS_CHANNEL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_VFS_CHANNEL, GVfsChannel)) +#define G_VFS_CHANNEL_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_VFS_CHANNEL, GVfsChannelClass)) +#define G_IS_VFS_CHANNEL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_VFS_CHANNEL)) +#define G_IS_VFS_CHANNEL_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_VFS_CHANNEL)) +#define G_VFS_CHANNEL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_VFS_CHANNEL, GVfsChannelClass)) + +typedef struct _GVfsChannel GVfsChannel; +typedef struct _GVfsChannelClass GVfsChannelClass; +typedef struct _GVfsChannelPrivate GVfsChannelPrivate; + +struct _GVfsChannel +{ + GObject parent_instance; + + GVfsChannelPrivate *priv; +}; + +struct _GVfsChannelClass +{ + GObjectClass parent_class; + + GVfsJob *(*close) (GVfsChannel *channel); + GVfsJob *(*handle_request) (GVfsChannel *channel, + guint32 command, + guint32 seq_nr, + guint32 arg1, + guint32 arg2, + gpointer data, + gsize data_len, + GError **error); +}; + +GType g_vfs_channel_get_type (void) G_GNUC_CONST; + +int g_vfs_channel_steal_remote_fd (GVfsChannel *channel); +GVfsBackend * g_vfs_channel_get_backend (GVfsChannel *channel); +GVfsBackendHandle g_vfs_channel_get_backend_handle (GVfsChannel *channel); +void g_vfs_channel_set_backend_handle (GVfsChannel *channel, + GVfsBackendHandle backend_handle); +gboolean g_vfs_channel_has_job (GVfsChannel *channel); +GVfsJob * g_vfs_channel_get_job (GVfsChannel *channel); +void g_vfs_channel_send_error (GVfsChannel *channel, + GError *error); +void g_vfs_channel_send_reply (GVfsChannel *channel, + GVfsDaemonSocketProtocolReply *reply, + void *data, + gsize data_len); +guint32 g_vfs_channel_get_current_seq_nr (GVfsChannel *channel); + +/* TODO: i/o priority? */ + +G_END_DECLS + +#endif /* __G_VFS_CHANNEL_H__ */ |