Use G_DECLARE_FINAL_TYPE(). Rename struct udscs_connection --> UdscsConnection Signed-off-by: Jakub Janků <jjanku@xxxxxxxxxx> --- src/udscs.c | 15 ++++++--------- src/udscs.h | 28 +++++++--------------------- src/vdagent/clipboard.c | 8 ++++---- src/vdagent/clipboard.h | 4 ++-- src/vdagent/file-xfers.c | 6 +++--- src/vdagent/file-xfers.h | 4 ++-- src/vdagent/vdagent.c | 4 ++-- src/vdagent/x11-priv.h | 2 +- src/vdagent/x11.c | 2 +- src/vdagent/x11.h | 2 +- src/vdagentd/vdagentd.c | 20 ++++++++++---------- 11 files changed, 39 insertions(+), 56 deletions(-) diff --git a/src/udscs.c b/src/udscs.c index 7ae1ebe..5f769ca 100644 --- a/src/udscs.c +++ b/src/udscs.c @@ -30,18 +30,15 @@ #include "vdagentd-proto-strings.h" #include "vdagent-connection.h" -struct udscs_connection { +struct _UdscsConnection { VDAgentConnection parent_instance; - int debug; - - /* Callbacks */ udscs_read_callback read_callback; }; G_DEFINE_TYPE(UdscsConnection, udscs_connection, VDAGENT_TYPE_CONNECTION); -static void debug_print_message_header(struct udscs_connection *conn, +static void debug_print_message_header(UdscsConnection *conn, struct udscs_message_header *header, const gchar *direction) { @@ -100,13 +97,13 @@ static void udscs_connection_class_init(UdscsConnectionClass *klass) conn_class->handle_message = conn_handle_message; } -struct udscs_connection *udscs_connect(const char *socketname, +UdscsConnection *udscs_connect(const char *socketname, udscs_read_callback read_callback, VDAgentConnErrorCb error_cb, int debug) { GIOStream *io_stream; - struct udscs_connection *conn; + UdscsConnection *conn; GError *err = NULL; io_stream = vdagent_socket_connect(socketname, &err); @@ -131,7 +128,7 @@ struct udscs_connection *udscs_connect(const char *socketname, return conn; } -void udscs_write(struct udscs_connection *conn, uint32_t type, uint32_t arg1, +void udscs_write(UdscsConnection *conn, uint32_t type, uint32_t arg1, uint32_t arg2, const uint8_t *data, uint32_t size) { gpointer buf; @@ -277,7 +274,7 @@ static gboolean udscs_server_accept_cb(GSocketService *service, gpointer user_data) { struct udscs_server *server = user_data; - struct udscs_connection *new_conn; + UdscsConnection *new_conn; new_conn = g_object_new(UDSCS_TYPE_CONNECTION, NULL); new_conn->debug = server->debug; diff --git a/src/udscs.h b/src/udscs.h index 382da06..b2d71b6 100644 --- a/src/udscs.h +++ b/src/udscs.h @@ -29,25 +29,11 @@ G_BEGIN_DECLS -#define UDSCS_TYPE_CONNECTION (udscs_connection_get_type()) -#define UDSCS_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), UDSCS_TYPE_CONNECTION, UdscsConnection)) -#define UDSCS_IS_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), UDSCS_TYPE_CONNECTION)) -#define UDSCS_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), UDSCS_TYPE_CONNECTION, UdscsConnectionClass)) -#define UDSCS_IS_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), UDSCS_TYPE_CONNECTION)) -#define UDSCS_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), UDSCS_TYPE_CONNECTION, UdscsConnectionClass)) - -typedef struct udscs_connection UdscsConnection; -typedef struct UdscsConnectionClass UdscsConnectionClass; - -struct UdscsConnectionClass { - VDAgentConnectionClass parent_class; -}; - -GType udscs_connection_get_type(void); +#define UDSCS_TYPE_CONNECTION udscs_connection_get_type() +G_DECLARE_FINAL_TYPE(UdscsConnection, udscs_connection, UDSCS, CONNECTION, VDAgentConnection); /* ---------- Generic bits and client-side API ---------- */ -struct udscs_connection; struct udscs_message_header { uint32_t type; uint32_t arg1; @@ -59,7 +45,7 @@ struct udscs_message_header { * received. The callback does not own the data buffer and should not free it. * The data buffer will be freed shortly after the read callback returns. */ -typedef void (*udscs_read_callback)(struct udscs_connection *connp, +typedef void (*udscs_read_callback)(UdscsConnection *conn, struct udscs_message_header *header, uint8_t *data); /* Connect to the unix domain socket specified by socketname. @@ -68,14 +54,14 @@ typedef void (*udscs_read_callback)(struct udscs_connection *connp, * If debug is true then the events on this connection will be traced. * This includes the incoming and outgoing message names. */ -struct udscs_connection *udscs_connect(const char *socketname, +UdscsConnection *udscs_connect(const char *socketname, udscs_read_callback read_callback, VDAgentConnErrorCb error_cb, int debug); /* Queue a message for delivery to the client connected through conn. */ -void udscs_write(struct udscs_connection *conn, uint32_t type, uint32_t arg1, +void udscs_write(UdscsConnection *conn, uint32_t type, uint32_t arg1, uint32_t arg2, const uint8_t *data, uint32_t size); #ifndef UDSCS_NO_SERVER @@ -87,7 +73,7 @@ struct udscs_server; /* Callbacks with this type will be called when a new connection to a * server is accepted. */ -typedef void (*udscs_connect_callback)(struct udscs_connection *conn); +typedef void (*udscs_connect_callback)(UdscsConnection *conn); /* Create a server for the given file descriptor. This allows us to use * pre-configured sockets for use with systemd socket activation, etc. @@ -133,7 +119,7 @@ void udscs_server_write_all(struct udscs_server *server, /* Callback type for udscs_server_for_all_clients. Clients can be disconnected * from this callback just like with a read callback. */ -typedef int (*udscs_for_all_clients_callback)(struct udscs_connection *conn, +typedef int (*udscs_for_all_clients_callback)(UdscsConnection *conn, void *priv); /* Call func for all clients connected to the server, passing through diff --git a/src/vdagent/clipboard.c b/src/vdagent/clipboard.c index a8d2e91..e423f84 100644 --- a/src/vdagent/clipboard.c +++ b/src/vdagent/clipboard.c @@ -60,8 +60,8 @@ typedef struct { struct VDAgentClipboards { #ifdef WITH_GTK - struct udscs_connection *conn; - Selection selections[SELECTION_COUNT]; + UdscsConnection *conn; + Selection selections[SELECTION_COUNT]; #else struct vdagent_x11 *x11; #endif @@ -435,8 +435,8 @@ err: #endif } -VDAgentClipboards *vdagent_clipboards_init(struct vdagent_x11 *x11, - struct udscs_connection *conn) +VDAgentClipboards *vdagent_clipboards_init(struct vdagent_x11 *x11, + UdscsConnection *conn) { #ifdef WITH_GTK guint sel_id; diff --git a/src/vdagent/clipboard.h b/src/vdagent/clipboard.h index f819b49..6a79f9f 100644 --- a/src/vdagent/clipboard.h +++ b/src/vdagent/clipboard.h @@ -26,8 +26,8 @@ typedef struct VDAgentClipboards VDAgentClipboards; -VDAgentClipboards *vdagent_clipboards_init(struct vdagent_x11 *x11, - struct udscs_connection *conn); +VDAgentClipboards *vdagent_clipboards_init(struct vdagent_x11 *x11, + UdscsConnection *conn); void vdagent_clipboards_finalize(VDAgentClipboards *c, gboolean conn_alive); void vdagent_clipboard_request(VDAgentClipboards *c, guint sel_id, guint type); diff --git a/src/vdagent/file-xfers.c b/src/vdagent/file-xfers.c index 3b431ee..4898fc0 100644 --- a/src/vdagent/file-xfers.c +++ b/src/vdagent/file-xfers.c @@ -39,7 +39,7 @@ struct vdagent_file_xfers { GHashTable *xfers; - struct udscs_connection *vdagentd; + UdscsConnection *vdagentd; char *save_dir; int open_save_dir; int debug; @@ -76,7 +76,7 @@ static void vdagent_file_xfer_task_free(gpointer data) } struct vdagent_file_xfers *vdagent_file_xfers_create( - struct udscs_connection *vdagentd, const char *save_dir, + UdscsConnection *vdagentd, const char *save_dir, int open_save_dir, int debug) { struct vdagent_file_xfers *xfers; @@ -373,7 +373,7 @@ void vdagent_file_xfers_data(struct vdagent_file_xfers *xfers, } } -void vdagent_file_xfers_error_disabled(struct udscs_connection *vdagentd, uint32_t msg_id) +void vdagent_file_xfers_error_disabled(UdscsConnection *vdagentd, uint32_t msg_id) { g_return_if_fail(vdagentd != NULL); diff --git a/src/vdagent/file-xfers.h b/src/vdagent/file-xfers.h index 29a7717..3cfbe53 100644 --- a/src/vdagent/file-xfers.h +++ b/src/vdagent/file-xfers.h @@ -27,7 +27,7 @@ struct vdagent_file_xfers; struct vdagent_file_xfers *vdagent_file_xfers_create( - struct udscs_connection *vdagentd, const char *save_dir, + UdscsConnection *vdagentd, const char *save_dir, int open_save_dir, int debug); void vdagent_file_xfers_destroy(struct vdagent_file_xfers *xfer); @@ -37,7 +37,7 @@ void vdagent_file_xfers_status(struct vdagent_file_xfers *xfers, VDAgentFileXferStatusMessage *msg); void vdagent_file_xfers_data(struct vdagent_file_xfers *xfers, VDAgentFileXferDataMessage *msg); -void vdagent_file_xfers_error_disabled(struct udscs_connection *vdagentd, +void vdagent_file_xfers_error_disabled(UdscsConnection *vdagentd, uint32_t msg_id); int vdagent_file_xfers_create_file(const char *save_dir, char **file_name_p); diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c index 181c51a..9516f8b 100644 --- a/src/vdagent/vdagent.c +++ b/src/vdagent/vdagent.c @@ -46,7 +46,7 @@ typedef struct VDAgent { VDAgentClipboards *clipboards; struct vdagent_x11 *x11; struct vdagent_file_xfers *xfers; - struct udscs_connection *conn; + UdscsConnection *conn; GIOChannel *x11_channel; GMainLoop *loop; @@ -165,7 +165,7 @@ static void vdagent_quit_loop(VDAgent *agent) g_main_loop_quit(agent->loop); } -static void daemon_read_complete(struct udscs_connection *conn, +static void daemon_read_complete(UdscsConnection *conn, struct udscs_message_header *header, uint8_t *data) { VDAgent *agent = g_object_get_data(G_OBJECT(conn), "agent"); diff --git a/src/vdagent/x11-priv.h b/src/vdagent/x11-priv.h index 99676d2..70adcc5 100644 --- a/src/vdagent/x11-priv.h +++ b/src/vdagent/x11-priv.h @@ -111,7 +111,7 @@ struct vdagent_x11 { Atom selection_req_atom; #endif Window root_window[MAX_SCREENS]; - struct udscs_connection *vdagentd; + UdscsConnection *vdagentd; int debug; int fd; int screen_count; diff --git a/src/vdagent/x11.c b/src/vdagent/x11.c index c2515a8..2d246ca 100644 --- a/src/vdagent/x11.c +++ b/src/vdagent/x11.c @@ -196,7 +196,7 @@ static gchar *vdagent_x11_get_wm_name(struct vdagent_x11 *x11) #endif } -struct vdagent_x11 *vdagent_x11_create(struct udscs_connection *vdagentd, +struct vdagent_x11 *vdagent_x11_create(UdscsConnection *vdagentd, int debug, int sync) { struct vdagent_x11 *x11; diff --git a/src/vdagent/x11.h b/src/vdagent/x11.h index bb2ac80..c49a397 100644 --- a/src/vdagent/x11.h +++ b/src/vdagent/x11.h @@ -28,7 +28,7 @@ struct vdagent_x11; -struct vdagent_x11 *vdagent_x11_create(struct udscs_connection *vdagentd, +struct vdagent_x11 *vdagent_x11_create(UdscsConnection *vdagentd, int debug, int sync); void vdagent_x11_destroy(struct vdagent_x11 *x11, int vdagentd_disconnected); diff --git a/src/vdagentd/vdagentd.c b/src/vdagentd/vdagentd.c index 689a83a..0565881 100644 --- a/src/vdagentd/vdagentd.c +++ b/src/vdagentd/vdagentd.c @@ -76,7 +76,7 @@ static uint32_t *capabilities = NULL; static int capabilities_size = 0; static const char *active_session = NULL; static unsigned int session_count = 0; -static struct udscs_connection *active_session_conn = NULL; +static UdscsConnection *active_session_conn = NULL; static int agent_owns_clipboard[256] = { 0, }; static int retval = 0; static int client_connected = 0; @@ -332,7 +332,7 @@ static void do_client_file_xfer(struct vdagent_virtio_port *vport, uint8_t *data) { uint32_t msg_type, id; - struct udscs_connection *conn; + UdscsConnection *conn; switch (message_header->type) { case VD_AGENT_FILE_XFER_START: { @@ -646,7 +646,7 @@ static void virtio_write_clipboard(uint8_t selection, uint32_t msg_type, } /* vdagentd <-> vdagent communication handling */ -static void do_agent_clipboard(struct udscs_connection *conn, +static void do_agent_clipboard(UdscsConnection *conn, struct udscs_message_header *header, uint8_t *data) { uint8_t selection = header->arg1; @@ -787,10 +787,10 @@ static void check_xorg_resolution(void) } } -static int connection_matches_active_session(struct udscs_connection *conn, +static int connection_matches_active_session(UdscsConnection *conn, void *priv) { - struct udscs_connection **conn_ret = (struct udscs_connection **)priv; + UdscsConnection **conn_ret = (UdscsConnection **)priv; struct agent_data *agent_data = g_object_get_data(G_OBJECT(conn), "agent_data"); /* Check if this connection matches the currently active session */ @@ -816,7 +816,7 @@ static void release_clipboards(void) } } -static void update_active_session_connection(struct udscs_connection *new_conn) +static void update_active_session_connection(UdscsConnection *new_conn) { if (session_info) { new_conn = NULL; @@ -877,7 +877,7 @@ static gboolean remove_active_xfers(gpointer key, gpointer value, gpointer conn) return 0; } -static void agent_connect(struct udscs_connection *conn) +static void agent_connect(UdscsConnection *conn) { struct agent_data *agent_data; agent_data = g_new0(struct agent_data, 1); @@ -927,7 +927,7 @@ static void agent_disconnect(VDAgentConnection *conn, GError *err) update_active_session_connection(NULL); } -static void do_agent_xorg_resolution(struct udscs_connection *conn, +static void do_agent_xorg_resolution(UdscsConnection *conn, struct udscs_message_header *header, guint8 *data) { @@ -960,7 +960,7 @@ static void do_agent_xorg_resolution(struct udscs_connection *conn, check_xorg_resolution(); } -static void do_agent_file_xfer_status(struct udscs_connection *conn, +static void do_agent_file_xfer_status(UdscsConnection *conn, struct udscs_message_header *header, guint8 *data) { @@ -988,7 +988,7 @@ static void do_agent_file_xfer_status(struct udscs_connection *conn, g_hash_table_remove(active_xfers, task_id); } -static void agent_read_complete(struct udscs_connection *conn, +static void agent_read_complete(UdscsConnection *conn, struct udscs_message_header *header, uint8_t *data) { switch (header->type) { -- 2.20.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel