[X2Go-Commits] [libx2goclient] 26/44: src/x2goclient-network.{c, h}: make parent_connection function pointer a read-only property called connect-function acting on an instance private called connect_function, add getter and setter.
git-admin at x2go.org
git-admin at x2go.org
Fri Sep 18 01:55:39 CEST 2020
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository libx2goclient.
commit 7ee08cf186d31789e6c496f199ee96d04c6847d5
Author: Mihai Moldovan <ionic at ionic.de>
Date: Wed Aug 5 14:55:33 2020 +0200
src/x2goclient-network.{c,h}: make parent_connection function pointer a read-only property called connect-function acting on an instance private called connect_function, add getter and setter.
This makes it way safer to use, especially since it can now be truly
immutable, only set once in this class's initialization.
---
src/x2goclient-network.c | 18 ++++++++++++++++--
src/x2goclient-network.h | 1 -
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c
index d076817..6ba5b24 100644
--- a/src/x2goclient-network.c
+++ b/src/x2goclient-network.c
@@ -55,6 +55,7 @@ typedef struct X2GoClientNetworkPrivate_ {
X2GoClientNetworkOptions *options;
gchar *session_path; /* Will eventually be replaced with a session object, probably. */
gboolean connected;
+ gboolean (*connect_func) (X2GoClientNetwork * const self, GError ** const gerr);
} X2GoClientNetworkPrivate;
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (X2GoClientNetwork, x2goclient_network, G_TYPE_OBJECT);
@@ -73,6 +74,7 @@ enum {
X2GO_NET_PROP_OPTIONS,
X2GO_NET_PROP_SESSION_PATH,
X2GO_NET_PROP_CONNECTED,
+ X2GO_NET_PROP_CONN_FUNC,
X2GO_NET_N_PROPERTIES
};
@@ -129,9 +131,12 @@ static void x2goclient_network_class_init (X2GoClientNetworkClass * const klass)
FALSE,
G_PARAM_STATIC_STRINGS | G_PARAM_READABLE);
- g_object_class_install_properties (object_class, X2GO_NET_N_PROPERTIES, net_obj_properties);
+ net_obj_properties[X2GO_NET_PROP_CONN_FUNC] = g_param_spec_pointer ("connect-function", _("Pointer to this instance's connect function"),
+ _("A pointer to the instance's connect function. "
+ "This is supposed to be immutable."),
+ G_PARAM_STATIC_STRINGS | G_PARAM_READABLE);
- klass->parent_connect = &x2goclient_network_connect;
+ g_object_class_install_properties (object_class, X2GO_NET_N_PROPERTIES, net_obj_properties);
}
static void x2goclient_network_init (X2GoClientNetwork * const self) {
@@ -141,6 +146,7 @@ static void x2goclient_network_init (X2GoClientNetwork * const self) {
priv->options = NULL;
priv->session_path = NULL;
priv->connected = FALSE;
+ priv->connect_func = &x2goclient_network_connect;
}
static void x2goclient_network_dispose (GObject * const object) {
@@ -162,6 +168,8 @@ static void x2goclient_network_finalize (GObject * const object) {
g_free (priv->session_path);
priv->session_path = NULL;
+ priv->connect_func = NULL;
+
(G_OBJECT_CLASS (x2goclient_network_parent_class))->finalize (object);
}
@@ -228,6 +236,9 @@ static void x2goclient_network_set_property (GObject * const object, guint prop_
case (X2GO_NET_PROP_CONNECTED):
priv->connected = g_value_get_boolean (value);
break;
+ case (X2GO_NET_PROP_CONN_FUNC):
+ priv->connect_func = g_value_get_pointer (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, param_spec);
break;
@@ -254,6 +265,9 @@ static void x2goclient_network_get_property (GObject * const object, const guint
case (X2GO_NET_PROP_CONNECTED):
g_value_set_boolean (value, priv->connected);
break;
+ case (X2GO_NET_PROP_CONN_FUNC):
+ g_value_set_pointer (value, priv->connect_func);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, param_spec);
break;
diff --git a/src/x2goclient-network.h b/src/x2goclient-network.h
index 5e0c15d..cf96c35 100644
--- a/src/x2goclient-network.h
+++ b/src/x2goclient-network.h
@@ -59,7 +59,6 @@ struct _X2GoClientNetworkClass {
/*< private >*/
GSocketAddress* (*parse_sockspec) (X2GoClientNetwork * const self, const GString * const sockspec);
- gboolean (*parent_connect) (X2GoClientNetwork * const self, GError ** const gerr);
/* We might need a lot more functions... */
gpointer padding[50];
--
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