[Spice-devel] File Transfer API

Jonathon Jongsma jjongsma at redhat.com
Wed Sep 16 11:24:02 PDT 2015


On Wed, 2015-09-16 at 12:33 -0400, Marc-André Lureau wrote:
> Hi
> 
> ----- Original Message -----
> > So, spice-gtk has supported file transfers from client to guest for
> > quite a while. But there's a longstanding issue that the user has no
> > feedback about whether the file is actually being transferred, or how
> > long it will take. The only real feedback that a user gets is after the
> > file transfer is completed: the vdagent will generally open a file
> > browser window to reveal the transferred file.
> > 
> > So I was poking around a bit with adding a file transfer progress
> > indication to virt-viewer, and I found that the file transfer API in
> > spice-gtk does not make this very easy. The main API involved here is
> > this:
> > 
> > void spice_main_file_copy_async(SpiceMainChannel *channel,
> >                                 GFile **sources,
> >                                 GFileCopyFlags flags,
> >                                 GCancellable *cancellable,
> >                                 GFileProgressCallback progress_callback,
> >                                 gpointer progress_callback_data,
> >                                 GAsyncReadyCallback callback,
> >                                 gpointer user_data);
> > 
> > At first glance, it looks like this gives us everything we need, but
> > there are a few issues with it. The main ones are:
> 
> Just want to mention this API was originally designed with single file
> copy in mind (at this time no plan for multiple files), and there was
> no support for monitoring/notification of progress from listeners
> either (only the caller could get the progress).


Indeed, for transferring single files this API seems perfectly adequate.
The complications only really arise due to the fact that you can copy
multiple files in one function call.

Jonathon



More information about the Spice-devel mailing list