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 <io...@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
_______________________________________________
x2go-commits mailing list
x2go-commits@lists.x2go.org
https://lists.x2go.org/listinfo/x2go-commits

Reply via email to