diff options
Diffstat (limited to 'server/red_channel.h')
-rw-r--r-- | server/red_channel.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/server/red_channel.h b/server/red_channel.h index 1592896b..676e1ef5 100644 --- a/server/red_channel.h +++ b/server/red_channel.h @@ -236,6 +236,14 @@ typedef struct RedChannelClientLatencyMonitor { int64_t roundtrip; } RedChannelClientLatencyMonitor; +typedef struct RedChannelClientConnectivityMonitor { + int state; + uint32_t out_bytes; + uint32_t in_bytes; + uint32_t timeout; + SpiceTimer *timer; +} RedChannelClientConnectivityMonitor; + struct RedChannelClient { RingItem channel_link; RingItem client_link; @@ -289,6 +297,7 @@ struct RedChannelClient { int wait_migrate_flush_mark; RedChannelClientLatencyMonitor latency_monitor; + RedChannelClientConnectivityMonitor connectivity_monitor; }; struct RedChannel { @@ -448,6 +457,11 @@ SpiceMarshaller *red_channel_client_switch_to_urgent_sender(RedChannelClient *rc /* returns -1 if we don't have an estimation */ int red_channel_client_get_roundtrip_ms(RedChannelClient *rcc); +/* + * Checks periodically if the connection is still alive + */ +void red_channel_client_start_connectivity_monitoring(RedChannelClient *rcc, uint32_t timeout_ms); + void red_channel_pipe_item_init(RedChannel *channel, PipeItem *item, int type); // TODO: add back the channel_pipe_add functionality - by adding reference counting |