[Spice-devel] [PATCH spice-server v2 1/2] Introduce CommonGraphicsChannelClient

Frediano Ziglio fziglio at redhat.com
Fri Mar 3 14:46:03 UTC 2017


This prepare for the next patch.
As network buffer should be specific to the specific
RedChannelClient we should have one.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/common-graphics-channel.c | 12 ++++++++++++
 server/common-graphics-channel.h | 32 ++++++++++++++++++++++++++++++++
 server/cursor-channel-client.c   |  2 +-
 server/cursor-channel-client.h   |  5 ++---
 server/dcc.c                     |  2 +-
 server/dcc.h                     | 12 +++++-------
 6 files changed, 53 insertions(+), 12 deletions(-)

diff --git a/server/common-graphics-channel.c b/server/common-graphics-channel.c
index bad6e8c..6faf1d7 100644
--- a/server/common-graphics-channel.c
+++ b/server/common-graphics-channel.c
@@ -31,6 +31,8 @@
 
 G_DEFINE_ABSTRACT_TYPE(CommonGraphicsChannel, common_graphics_channel, RED_TYPE_CHANNEL)
 
+G_DEFINE_TYPE(CommonGraphicsChannelClient, common_graphics_channel_client, RED_TYPE_CHANNEL_CLIENT)
+
 #define GRAPHICS_CHANNEL_PRIVATE(o) \
     (G_TYPE_INSTANCE_GET_PRIVATE((o), TYPE_COMMON_GRAPHICS_CHANNEL, CommonGraphicsChannelPrivate))
 
@@ -188,3 +190,13 @@ QXLInstance* common_graphics_channel_get_qxl(CommonGraphicsChannel *self)
 {
     return self->priv->qxl;
 }
+
+static void
+common_graphics_channel_client_init(CommonGraphicsChannelClient *self)
+{
+}
+
+static void
+common_graphics_channel_client_class_init(CommonGraphicsChannelClientClass *klass)
+{
+}
diff --git a/server/common-graphics-channel.h b/server/common-graphics-channel.h
index 4d88148..bdcb2c8 100644
--- a/server/common-graphics-channel.h
+++ b/server/common-graphics-channel.h
@@ -70,6 +70,38 @@ enum {
     RED_PIPE_ITEM_TYPE_COMMON_LAST
 };
 
+#define TYPE_COMMON_GRAPHICS_CHANNEL_CLIENT common_graphics_channel_client_get_type()
+
+#define COMMON_GRAPHICS_CHANNEL_CLIENT(obj) \
+    (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_COMMON_GRAPHICS_CHANNEL_CLIENT, \
+    CommonGraphicsChannelClient))
+#define COMMON_GRAPHICS_CHANNEL_CLIENT_CLASS(klass) \
+    (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_COMMON_GRAPHICS_CHANNEL_CLIENT, \
+    CommonGraphicsChannelClientClass))
+#define COMMON_IS_GRAPHICS_CHANNEL_CLIENT(obj) \
+    (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_COMMON_GRAPHICS_CHANNEL_CLIENT))
+#define COMMON_IS_GRAPHICS_CHANNEL_CLIENT_CLASS(klass) \
+    (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_COMMON_GRAPHICS_CHANNEL_CLIENT))
+#define COMMON_GRAPHICS_CHANNEL_CLIENT_GET_CLASS(obj) \
+    (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_COMMON_GRAPHICS_CHANNEL_CLIENT, \
+    CommonGraphicsChannelClientClass))
+
+typedef struct CommonGraphicsChannelClient CommonGraphicsChannelClient;
+typedef struct CommonGraphicsChannelClientClass CommonGraphicsChannelClientClass;
+typedef struct CommonGraphicsChannelClientPrivate CommonGraphicsChannelClientPrivate;
+
+struct CommonGraphicsChannelClient {
+    RedChannelClient parent;
+
+    CommonGraphicsChannelClientPrivate *priv;
+};
+
+struct CommonGraphicsChannelClientClass {
+    RedChannelClientClass parent_class;
+};
+
+GType common_graphics_channel_client_get_type(void) G_GNUC_CONST;
+
 G_END_DECLS
 
 #endif /* _COMMON_GRAPHICS_CHANNEL_H */
diff --git a/server/cursor-channel-client.c b/server/cursor-channel-client.c
index 1a05f73..db74bde 100644
--- a/server/cursor-channel-client.c
+++ b/server/cursor-channel-client.c
@@ -35,7 +35,7 @@
 #define CURSOR_CACHE_HASH_KEY(id) ((id) & CURSOR_CACHE_HASH_MASK)
 #define CURSOR_CLIENT_TIMEOUT 30000000000ULL //nano
 
-G_DEFINE_TYPE(CursorChannelClient, cursor_channel_client, RED_TYPE_CHANNEL_CLIENT)
+G_DEFINE_TYPE(CursorChannelClient, cursor_channel_client, TYPE_COMMON_GRAPHICS_CHANNEL_CLIENT)
 
 #define CURSOR_CHANNEL_CLIENT_PRIVATE(o) \
     (G_TYPE_INSTANCE_GET_PRIVATE((o), TYPE_CURSOR_CHANNEL_CLIENT, CursorChannelClientPrivate))
diff --git a/server/cursor-channel-client.h b/server/cursor-channel-client.h
index e2aa3a8..de2c9d6 100644
--- a/server/cursor-channel-client.h
+++ b/server/cursor-channel-client.h
@@ -45,9 +45,8 @@ typedef struct CursorChannelClient CursorChannelClient;
 typedef struct CursorChannelClientClass CursorChannelClientClass;
 typedef struct CursorChannelClientPrivate CursorChannelClientPrivate;
 
-struct CursorChannelClient
-{
-    RedChannelClient parent;
+struct CursorChannelClient {
+    CommonGraphicsChannelClient parent;
 
     CursorChannelClientPrivate *priv;
 };
diff --git a/server/dcc.c b/server/dcc.c
index 898e074..01b90ba 100644
--- a/server/dcc.c
+++ b/server/dcc.c
@@ -27,7 +27,7 @@
 #include "spice-server-enums.h"
 #include "glib-compat.h"
 
-G_DEFINE_TYPE(DisplayChannelClient, display_channel_client, RED_TYPE_CHANNEL_CLIENT)
+G_DEFINE_TYPE(DisplayChannelClient, display_channel_client, TYPE_COMMON_GRAPHICS_CHANNEL_CLIENT)
 
 #define DISPLAY_CLIENT_SHORT_TIMEOUT 15000000000ULL //nano
 #define DISPLAY_FREE_LIST_DEFAULT_SIZE 128
diff --git a/server/dcc.h b/server/dcc.h
index 71ac42c..31e25b5 100644
--- a/server/dcc.h
+++ b/server/dcc.h
@@ -24,7 +24,7 @@
 #include "image-cache.h"
 #include "pixmap-cache.h"
 #include "display-limits.h"
-#include "red-channel-client.h"
+#include "common-graphics-channel.h"
 
 G_BEGIN_DECLS
 
@@ -45,18 +45,16 @@ typedef struct DisplayChannelClient DisplayChannelClient;
 typedef struct DisplayChannelClientClass DisplayChannelClientClass;
 typedef struct DisplayChannelClientPrivate DisplayChannelClientPrivate;
 
-struct DisplayChannelClient
-{
-    RedChannelClient parent;
+struct DisplayChannelClient {
+    CommonGraphicsChannelClient parent;
 
     int is_low_bandwidth;
 
     DisplayChannelClientPrivate *priv;
 };
 
-struct DisplayChannelClientClass
-{
-    RedChannelClientClass parent_class;
+struct DisplayChannelClientClass {
+    CommonGraphicsChannelClientClass parent_class;
 };
 
 GType display_channel_client_get_type(void) G_GNUC_CONST;
-- 
2.9.3



More information about the Spice-devel mailing list