[bijiben/wip/sadiq/modernize: 1/2] biji-timeout: Port to G_DECLARE_FINAL_TYPE



commit 4c94ae75ae00fc7cc4502b6ce796bf1eff2a36a4
Author: Mohammed Sadiq <sadiq sadiqpk org>
Date:   Mon Oct 30 18:10:32 2017 +0530

    biji-timeout: Port to G_DECLARE_FINAL_TYPE
    
    G_DECLARE_FINAL_TYPE was introduced in glib 2.44.
    Using this can avoid lots of boilerplate code.
    
    Also avoid using private members. As the class isn't
    derivable private members doesn't make any much difference.
    
    This is a part of effort to clean up codebase and make the code
    more maintainable.
    https://bugzilla.gnome.org/show_bug.cgi?id=789696

 src/libbiji/biji-timeout.c |   38 +++++++++++++++-----------------------
 src/libbiji/biji-timeout.h |   29 ++++-------------------------
 2 files changed, 19 insertions(+), 48 deletions(-)
---
diff --git a/src/libbiji/biji-timeout.c b/src/libbiji/biji-timeout.c
index 1c59337..a08158e 100644
--- a/src/libbiji/biji-timeout.c
+++ b/src/libbiji/biji-timeout.c
@@ -1,6 +1,7 @@
 /* biji-timeout.c
  * Copyright (C) Pierre-Yves LUYTEN 2012 <py luyten fr>
- * 
+ * Copyright 2017 Mohammed Sadiq <sadiq sadiqpk org>
+ *
  * bijiben is free software: you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
  * Free Software Foundation, either version 3 of the License, or
@@ -31,25 +32,19 @@ enum {
 
 static guint biji_time_signals [BIJI_TIME_SIGNALS] = { 0 };
 
-/* Private */
-struct _BijiTimeoutPrivate
+struct _BijiTimeout
 {
+  GObject parent_instance;
+
   guint timeout_id;
   guint quit;
 };
 
-#define BIJI_TIMEOUT_GET_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE ((o), BIJI_TYPE_TIMEOUT, 
BijiTimeoutPrivate))
-
 G_DEFINE_TYPE (BijiTimeout, biji_timeout, G_TYPE_OBJECT);
 
 static void
 biji_timeout_init (BijiTimeout *self)
 {
-  BijiTimeoutPrivate *priv = BIJI_TIMEOUT_GET_PRIVATE(self);
-  self->priv = priv;
-
-  priv->timeout_id = 0;
-  priv->quit = 0;
 }
 
 static void
@@ -59,8 +54,8 @@ biji_timeout_finalize (GObject *object)
 
   biji_timeout_cancel (self);
 
-  if (self->priv->quit !=0)
-    g_signal_handler_disconnect (g_application_get_default(), self->priv->quit);
+  if (self->quit !=0 )
+    g_signal_handler_disconnect (g_application_get_default(), self->quit);
 
   G_OBJECT_CLASS (biji_timeout_parent_class)->finalize (object);
 }
@@ -80,8 +75,6 @@ biji_timeout_class_init (BijiTimeoutClass *klass)
                                                   g_cclosure_marshal_VOID__VOID,
                                                   G_TYPE_NONE,
                                                   0);
-
-  g_type_class_add_private (klass, sizeof (BijiTimeoutPrivate));
 }
 
 BijiTimeout * biji_timeout_new (void)
@@ -94,7 +87,7 @@ static gboolean
 biji_timeout_expired (BijiTimeout *self)
 {
   g_signal_emit (self, biji_time_signals[BIJI_TIME_OUT], 0);
-  self->priv->timeout_id = 0;
+  self->timeout_id = 0;
   return FALSE;
 }
 
@@ -110,11 +103,10 @@ biji_timeout_callback (BijiTimeout *self)
 void
 biji_timeout_cancel (BijiTimeout *self)
 {
-  if (self->priv->timeout_id != 0)
-  {
-    g_source_remove (self->priv->timeout_id);
-    self->priv->timeout_id = 0;
-  }
+  if (self->timeout_id != 0)
+    g_source_remove (self->timeout_id);
+
+  self->timeout_id = 0;
 }
 
 void
@@ -122,10 +114,10 @@ biji_timeout_reset (BijiTimeout *self, guint millis)
 {
   biji_timeout_cancel (self);
 
-  self->priv->timeout_id = g_timeout_add (
+  self->timeout_id = g_timeout_add (
        millis, (GSourceFunc) biji_timeout_callback, self);
 
   /* Ensure to perform timeout if main loop ends */
-  self->priv->quit = g_signal_connect_swapped (g_application_get_default(), "shutdown",
-                                               G_CALLBACK (biji_timeout_expired), self);
+  self->quit = g_signal_connect_swapped (g_application_get_default(), "shutdown",
+                                         G_CALLBACK (biji_timeout_expired), self);
 }
diff --git a/src/libbiji/biji-timeout.h b/src/libbiji/biji-timeout.h
index 9c1380b..edf7f24 100644
--- a/src/libbiji/biji-timeout.h
+++ b/src/libbiji/biji-timeout.h
@@ -1,6 +1,7 @@
 /* biji-timeout.h
  * Copyright (C) Pierre-Yves LUYTEN 2012 <py luyten fr>
- * 
+ * Copyright 2017 Mohammed Sadiq <sadiq sadiqpk org>
+ *
  * bijiben is free software: you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
  * Free Software Foundation, either version 3 of the License, or
@@ -22,31 +23,9 @@
 
 G_BEGIN_DECLS
 
-#define BIJI_TYPE_TIMEOUT             (biji_timeout_get_type ())
-#define BIJI_TIMEOUT(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), BIJI_TYPE_TIMEOUT, BijiTimeout))
-#define BIJI_TIMEOUT_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), BIJI_TYPE_TIMEOUT, 
BijiTimeoutClass))
-#define BIJI_IS_TIMEOUT(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BIJI_TYPE_TIMEOUT))
-#define BIJI_IS_TIMEOUT_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), BIJI_TYPE_TIMEOUT))
-#define BIJI_TIMEOUT_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), BIJI_TYPE_TIMEOUT, 
BijiTimeoutClass))
-
-typedef struct _BijiTimeoutClass BijiTimeoutClass;
-typedef struct _BijiTimeout BijiTimeout;
-typedef struct _BijiTimeoutPrivate BijiTimeoutPrivate;
-
-
-struct _BijiTimeoutClass
-{
-  GObjectClass parent_class;
-};
-
-struct _BijiTimeout
-{
-  GObject parent_instance;
-
-  BijiTimeoutPrivate *priv; 
-};
+#define BIJI_TYPE_TIMEOUT (biji_timeout_get_type ())
 
-GType biji_timeout_get_type (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (BijiTimeout, biji_timeout, BIJI, TIMEOUT, GObject)
 
 BijiTimeout * biji_timeout_new (void);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]