[X2Go-Commits] [libx2goclient] 06/10: src/x2goclient-network.{h, c}: implement basic abstract network object classes.

git-admin at x2go.org git-admin at x2go.org
Mon Jul 15 13:27:49 CEST 2019


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository libx2goclient.

commit 9385bf141f86ef45a1c9355f1c371127ec06665c
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Mon Jul 15 12:37:39 2019 +0200

    src/x2goclient-network.{h,c}: implement basic abstract network object classes.
    
    G-IR spits multiple warnings because of the mismatching namespace, but I
    wasn't able to find out what this is referring to.
---
 src/x2goclient-network.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/x2goclient-network.h | 16 +++++++++++++
 2 files changed, 76 insertions(+)

diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c
index dce782f..2c46092 100644
--- a/src/x2goclient-network.c
+++ b/src/x2goclient-network.c
@@ -24,6 +24,7 @@
 
 #include <glib.h>
 #include <glib/gi18n.h>
+#include <gio/gio.h>
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -31,3 +32,62 @@
 
 #include "x2goclient.h"
 #include "x2goclient-network.h"
+
+/* Not sure if we need this, so comment out for now. */
+/*
+typedef struct X2GoClientNetworkOptionsPrivate_ {
+} X2GoClientNetworkOptionsPrivate;
+*/
+
+/* G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (X2GoClientNetworkOptions, x2goclient_network_options, G_TYPE_OBJECT); */
+G_DEFINE_ABSTRACT_TYPE (X2GoClientNetworkOptions, x2goclient_network_options, G_TYPE_OBJECT);
+
+static void x2goclient_network_options_class_init (X2GoClientNetworkOptionsClass *klass) {
+}
+
+static void x2goclient_network_options_init (X2GoClientNetworkOptions *self) {
+}
+
+
+/*
+typedef struct X2GoClientNetworkPrivate_ {
+} X2GoClientNetworkPrivate;
+*/
+
+/* G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (X2GoClientNetwork, x2goclient_network, G_TYPE_OBJECT); */
+G_DEFINE_ABSTRACT_TYPE (X2GoClientNetwork, x2goclient_network, G_TYPE_OBJECT);
+
+/*
+ * Caution: NEVER abbreviate names in public (API) space.
+ *
+ * Since this file is a private implementation and nothing, short of
+ * extern variables, structs, functions, ... that come via headers,
+ * is actually exported, we can go bonkers with abbreviations.
+ */
+enum {
+  X2GO_NET_PROP_SOCKET = 1,
+  X2GO_NET_PROP_OPTIONS,
+  X2GO_NET_N_PROPERTIES
+};
+
+static GParamSpec *net_obj_properties[X2GO_NET_N_PROPERTIES] = { NULL, };
+
+static void x2goclient_network_class_init (X2GoClientNetworkClass *klass) {
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+  net_obj_properties[X2GO_NET_PROP_SOCKET] = g_param_spec_object ("socket", "Low-level socket",
+                                                                  "Low-level socket for the network connection, the local "
+                                                                  "part will be used for local binding if specified.",
+                                                                  G_TYPE_SOCKET_ADDRESS,
+                                                                  G_PARAM_READWRITE);
+
+  net_obj_properties[X2GO_NET_PROP_OPTIONS] = g_param_spec_object ("options", "Socket options",
+                                                                   "Specific socket options.",
+                                                                   X2GOCLIENT_TYPE_NETWORK_OPTIONS,
+                                                                   G_PARAM_READWRITE);
+
+  g_object_class_install_properties (object_class, X2GO_NET_N_PROPERTIES, net_obj_properties);
+}
+
+static void x2goclient_network_init (X2GoClientNetwork *self) {
+}
diff --git a/src/x2goclient-network.h b/src/x2goclient-network.h
index 4f64309..998221a 100644
--- a/src/x2goclient-network.h
+++ b/src/x2goclient-network.h
@@ -25,8 +25,24 @@
 #ifndef x2goclient_network_h
 #define x2goclient_network_h
 
+#include <glib-object.h>
+
 G_BEGIN_DECLS
 
+#define X2GOCLIENT_TYPE_NETWORK_OPTIONS (x2goclient_network_options_get_type ())
+G_DECLARE_DERIVABLE_TYPE (X2GoClientNetworkOptions, x2goclient_network_options, X2GOCLIENT, NETWORK_OPTIONS, GObject)
+
+struct _X2GoClientNetworkOptionsClass {
+  GObjectClass parent_class;
+};
+
+#define X2GOCLIENT_TYPE_NETWORK (x2goclient_network_get_type ())
+G_DECLARE_DERIVABLE_TYPE (X2GoClientNetwork, x2goclient_network, X2GOCLIENT, NETWORK, GObject)
+
+struct _X2GoClientNetworkClass {
+  GObjectClass parent_class;
+};
+
 G_END_DECLS
 
 #endif /* x2goclient_network_h */

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git


More information about the x2go-commits mailing list