[Spice-devel] [PATCH 05/11] move all item creation in main-channel-client.c

Jonathon Jongsma jjongsma at redhat.com
Thu May 12 20:45:12 UTC 2016


From: Frediano Ziglio <fziglio at redhat.com>

Move all core to create and destroy MainChannel pipe items in a single
place.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/main-channel-client.c | 34 ++++++++++++++++++++++++++++++++++
 server/main-channel-client.h | 15 +++++++++------
 server/main-channel.c        | 29 +----------------------------
 3 files changed, 44 insertions(+), 34 deletions(-)

diff --git a/server/main-channel-client.c b/server/main-channel-client.c
index 2a2fac5..ea09976 100644
--- a/server/main-channel-client.c
+++ b/server/main-channel-client.c
@@ -101,6 +101,17 @@ typedef struct RedNotifyPipeItem {
     char *msg;
 } RedNotifyPipeItem;
 
+typedef struct RedMouseModePipeItem {
+    RedPipeItem base;
+    int current_mode;
+    int is_client_mouse_allowed;
+} RedMouseModePipeItem;
+
+typedef struct RedMultiMediaTimePipeItem {
+    RedPipeItem base;
+    int time;
+} RedMultiMediaTimePipeItem;
+
 #define ZERO_BUF_SIZE 4096
 
 static const uint8_t zero_page[ZERO_BUF_SIZE] = {0};
@@ -280,6 +291,29 @@ void main_channel_client_push_notify(MainChannelClient *mcc, const char *msg)
     red_channel_client_pipe_add_push(&mcc->base, item);
 }
 
+RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int num)
+{
+    RedMouseModePipeItem *item = spice_malloc(sizeof(RedMouseModePipeItem));
+    MainMouseModeItemInfo *info = data;
+
+    red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_MAIN_MOUSE_MODE);
+    item->current_mode = info->current_mode;
+    item->is_client_mouse_allowed = info->is_client_mouse_allowed;
+    return &item->base;
+}
+
+RedPipeItem *main_multi_media_time_item_new(RedChannelClient *rcc,
+                                            void *data, int num)
+{
+    MainMultiMediaTimeItemInfo *info = data;
+    RedMultiMediaTimePipeItem *item;
+
+    item = spice_malloc(sizeof(RedMultiMediaTimePipeItem));
+    red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_MAIN_MULTI_MEDIA_TIME);
+    item->time = info->time;
+    return &item->base;
+}
+
 void main_channel_client_handle_migrate_connected(MainChannelClient *mcc,
                                                   int success,
                                                   int seamless)
diff --git a/server/main-channel-client.h b/server/main-channel-client.h
index 5bbaac6..439e812 100644
--- a/server/main-channel-client.h
+++ b/server/main-channel-client.h
@@ -94,15 +94,18 @@ enum {
     RED_PIPE_ITEM_TYPE_MAIN_AGENT_CONNECTED_TOKENS,
 };
 
-typedef struct RedMouseModePipeItem {
-    RedPipeItem base;
+typedef struct MainMouseModeItemInfo {
     int current_mode;
     int is_client_mouse_allowed;
-} RedMouseModePipeItem;
+} MainMouseModeItemInfo;
 
-typedef struct RedMultiMediaTimePipeItem {
-    RedPipeItem base;
+RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int num);
+
+typedef struct MainMultiMediaTimeItemInfo {
     int time;
-} RedMultiMediaTimePipeItem;
+} MainMultiMediaTimeItemInfo;
+
+RedPipeItem *main_multi_media_time_item_new(RedChannelClient *rcc,
+                                            void *data, int num);
 
 #endif /* __MAIN_CHANNEL_CLIENT_H__ */
diff --git a/server/main-channel.c b/server/main-channel.c
index 0464186..4808658 100644
--- a/server/main-channel.c
+++ b/server/main-channel.c
@@ -56,33 +56,6 @@ RedClient *main_channel_get_client_by_link_id(MainChannel *main_chan, uint32_t c
     return NULL;
 }
 
-typedef struct MainMouseModeItemInfo {
-    int current_mode;
-    int is_client_mouse_allowed;
-} MainMouseModeItemInfo;
-
-static RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int num)
-{
-    RedMouseModePipeItem *item = spice_malloc(sizeof(RedMouseModePipeItem));
-    MainMouseModeItemInfo *info = data;
-
-    red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_MAIN_MOUSE_MODE);
-    item->current_mode = info->current_mode;
-    item->is_client_mouse_allowed = info->is_client_mouse_allowed;
-    return &item->base;
-}
-
-static RedPipeItem *main_multi_media_time_item_new(RedChannelClient *rcc,
-                                                   void *data, int num)
-{
-    RedMultiMediaTimePipeItem *item, *info = data;
-
-    item = spice_malloc(sizeof(RedMultiMediaTimePipeItem));
-    red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_MAIN_MULTI_MEDIA_TIME);
-    item->time = info->time;
-    return &item->base;
-}
-
 static void main_channel_push_channels(MainChannelClient *mcc)
 {
     if (red_client_during_migrate_at_target((main_channel_client_get_base(mcc))->client)) {
@@ -148,7 +121,7 @@ static int main_channel_handle_migrate_data(RedChannelClient *rcc,
 
 void main_channel_push_multi_media_time(MainChannel *main_chan, int time)
 {
-    RedMultiMediaTimePipeItem info = {
+    MainMultiMediaTimeItemInfo info = {
         .time = time,
     };
 
-- 
2.4.11



More information about the Spice-devel mailing list