RedChannelClient is responsible for talking to the client so it knows how if is connected or not. About disconnect you think that we loose a bit of flexibility however on disconnect the channel is triggered so additional needed process can be handled in destructor. These vfuncs where used by DummyChannel used by SoundChannel. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/red-channel-client.c | 27 ++------------------------- server/red-channel-client.h | 3 --- 2 files changed, 2 insertions(+), 28 deletions(-) diff --git a/server/red-channel-client.c b/server/red-channel-client.c index 32db186..16e5446 100644 --- a/server/red-channel-client.c +++ b/server/red-channel-client.c @@ -364,10 +364,6 @@ static void red_channel_client_initable_interface_init(GInitableIface *iface) iface->init = red_channel_client_initable_init; } -static gboolean red_channel_client_default_is_connected(RedChannelClient *rcc); -static void red_channel_client_default_disconnect(RedChannelClient *rcc); - - static void red_channel_client_constructed(GObject *object) { RedChannelClient *self = RED_CHANNEL_CLIENT(object); @@ -400,9 +396,6 @@ static void red_channel_client_class_init(RedChannelClientClass *klass) object_class->finalize = red_channel_client_finalize; object_class->constructed = red_channel_client_constructed; - klass->is_connected = red_channel_client_default_is_connected; - klass->disconnect = red_channel_client_default_disconnect; - spec = g_param_spec_pointer("stream", "stream", "Associated RedStream", G_PARAM_STATIC_STRINGS @@ -1701,20 +1694,12 @@ gboolean red_channel_client_is_mini_header(RedChannelClient *rcc) return rcc->priv->is_mini_header; } -static gboolean red_channel_client_default_is_connected(RedChannelClient *rcc) +gboolean red_channel_client_is_connected(RedChannelClient *rcc) { return rcc->priv->channel && (g_list_find(red_channel_get_clients(rcc->priv->channel), rcc) != NULL); } -gboolean red_channel_client_is_connected(RedChannelClient *rcc) -{ - RedChannelClientClass *klass = RED_CHANNEL_CLIENT_GET_CLASS(rcc); - - g_return_val_if_fail(klass->is_connected != NULL, FALSE); - return klass->is_connected(rcc); -} - static void red_channel_client_clear_sent_item(RedChannelClient *rcc) { rcc->priv->send_data.blocked = FALSE; @@ -1752,7 +1737,7 @@ void red_channel_client_push_set_ack(RedChannelClient *rcc) red_channel_client_pipe_add_type(rcc, RED_PIPE_ITEM_TYPE_SET_ACK); } -static void red_channel_client_default_disconnect(RedChannelClient *rcc) +void red_channel_client_disconnect(RedChannelClient *rcc) { RedChannel *channel = rcc->priv->channel; SpiceCoreInterfaceInternal *core = red_channel_get_core_interface(channel); @@ -1781,14 +1766,6 @@ static void red_channel_client_default_disconnect(RedChannelClient *rcc) red_channel_on_disconnect(channel, rcc); } -void red_channel_client_disconnect(RedChannelClient *rcc) -{ - RedChannelClientClass *klass = RED_CHANNEL_CLIENT_GET_CLASS(rcc); - - g_return_if_fail(klass->is_connected != NULL); - klass->disconnect(rcc); -} - int red_channel_client_is_blocked(RedChannelClient *rcc) { return rcc && rcc->priv->send_data.blocked; diff --git a/server/red-channel-client.h b/server/red-channel-client.h index 75d6cc3..1b0b810 100644 --- a/server/red-channel-client.h +++ b/server/red-channel-client.h @@ -192,9 +192,6 @@ struct RedChannelClient struct RedChannelClientClass { GObjectClass parent_class; - - gboolean (*is_connected)(RedChannelClient *rcc); - void (*disconnect)(RedChannelClient *rcc); }; #define SPICE_SERVER_ERROR spice_server_error_quark() -- 2.9.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel