[Spice-devel] [spice-gtk v4 02/24] file-xfer: get functions for SpiceFileTransferTask

Jonathon Jongsma jjongsma at redhat.com
Thu Jun 23 19:07:05 UTC 2016


On Thu, 2016-06-23 at 19:37 +0200, Victor Toso wrote:
> In order to channel-main interact with each SpiceFileTransferTask for
> the file-transfer operation, the following functions are introduced:

Change "In order to channel-main interact" to "In order for channel-main to
interact"

> * spice_file_transfer_task_get_id
> * spice_file_transfer_task_get_channel
> * spice_file_transfer_task_get_cancellable
> 
> Note that although "id" property is public and could be acquired by
> g_object_get but having the helper function is more practical.

Don't need both "although" and "but" in this sentence. Remove one of them.

> 
> This change is related to split SpiceFileTransferTask from
> channel-main.
> ---
>  src/channel-main.c | 32 +++++++++++++++++++++++++++++---
>  1 file changed, 29 insertions(+), 3 deletions(-)
> 
> diff --git a/src/channel-main.c b/src/channel-main.c
> index 1e4853e..7c67fa2 100644
> --- a/src/channel-main.c
> +++ b/src/channel-main.c
> @@ -54,6 +54,10 @@
>  
>  typedef struct spice_migrate spice_migrate;
>  
> +static guint32 spice_file_transfer_task_get_id(SpiceFileTransferTask *self);
> +static SpiceMainChannel
> *spice_file_transfer_task_get_channel(SpiceFileTransferTask *self);
> +static GCancellable
> *spice_file_transfer_task_get_cancellable(SpiceFileTransferTask *self);
> +
>  /**
>   * SECTION:file-transfer-task
>   * @short_description: Monitoring file transfers
> @@ -1911,9 +1915,12 @@ static void file_xfer_data_flushed_cb(GObject
> *source_object,
>  static void file_xfer_queue(SpiceFileTransferTask *self, int data_size)
>  {
>      VDAgentFileXferDataMessage msg;
> -    SpiceMainChannel *channel = SPICE_MAIN_CHANNEL(self->channel);
> +    SpiceMainChannel *channel;
>  
> -    msg.id = self->id;
> +    channel = spice_file_transfer_task_get_channel(self);
> +    g_return_if_fail(channel != NULL);
> +
> +    msg.id = spice_file_transfer_task_get_id(self);
>      msg.size = data_size;
>      agent_msg_queue_many(channel, VD_AGENT_FILE_XFER_DATA,
>                           &msg, sizeof(msg),
> @@ -1941,12 +1948,15 @@ static void file_xfer_read_cb(GObject *source_object,
>      }
>  
>      if (count > 0 || self->file_size == 0) {
> +        GCancellable *cancellable;
> +
>          self->read_bytes += count;
>          g_object_notify(G_OBJECT(self), "progress");
>          file_xfer_queue(self, count);
>          if (count == 0)
>              return;
> -        file_xfer_flush_async(channel, self->cancellable,
> +        cancellable = spice_file_transfer_task_get_cancellable(self);
> +        file_xfer_flush_async(channel, cancellable,
>                                file_xfer_data_flushed_cb, self);
>          self->pending = TRUE;
>      } else if (error) {
> @@ -3231,7 +3241,23 @@ gboolean spice_main_file_copy_finish(SpiceMainChannel
> *channel,
>      return g_task_propagate_boolean(task, error);
>  }
>  
> +static guint32 spice_file_transfer_task_get_id(SpiceFileTransferTask *self)
> +{
> +    g_return_val_if_fail(self != NULL, 0);
> +    return self->id;
> +}
> +
> +static SpiceMainChannel
> *spice_file_transfer_task_get_channel(SpiceFileTransferTask *self)
> +{
> +    g_return_val_if_fail(self != NULL, NULL);
> +    return self->channel;
> +}
>  
> +static GCancellable
> *spice_file_transfer_task_get_cancellable(SpiceFileTransferTask *self)
> +{
> +    g_return_val_if_fail(self != NULL, NULL);
> +    return self->cancellable;
> +}
>  
>  static void
>  spice_file_transfer_task_get_property(GObject *object,


with minor changes above

Acked-by: Jonathon Jongsma <jjongsma at redhat.com>




More information about the Spice-devel mailing list