[balsa/wip/gtk4: 225/351] smtp-server: declare it final



commit 5d7f7057f05c0bd01edb655a288832041ddc7881
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Thu Mar 15 20:25:53 2018 -0400

    smtp-server: declare it final
    
    Use DECLARE_FINAL_TYPE for LibBalsaSmtpServer. It is already opaque.

 libbalsa/smtp-server.c |   44 +++++++-------------------------------------
 libbalsa/smtp-server.h |   31 +++++++++++--------------------
 2 files changed, 18 insertions(+), 57 deletions(-)
---
diff --git a/libbalsa/smtp-server.c b/libbalsa/smtp-server.c
index ce3a6ea..95a5a97 100644
--- a/libbalsa/smtp-server.c
+++ b/libbalsa/smtp-server.c
@@ -39,8 +39,6 @@
 #  include "macosx-helpers.h"
 #endif
 
-static LibBalsaServerClass *parent_class = NULL;
-
 struct _LibBalsaSmtpServer {
     LibBalsaServer server;
 
@@ -49,13 +47,15 @@ struct _LibBalsaSmtpServer {
     gint lock_state;   /* 0 means unlocked; access via atomic operations */
 };
 
-typedef struct _LibBalsaSmtpServerClass {
+struct _LibBalsaSmtpServerClass {
     LibBalsaServerClass parent_class;
-} LibBalsaSmtpServerClass;
+};
+
+/* Class boilerplate */
 
-/* Server class methods */
+G_DEFINE_TYPE(LibBalsaSmtpServer, libbalsa_smtp_server, LIBBALSA_TYPE_SERVER)
 
-/* Object class method */
+/* Class methods */
 
 static void
 libbalsa_smtp_server_finalize(GObject * object)
@@ -68,7 +68,7 @@ libbalsa_smtp_server_finalize(GObject * object)
 
     g_free(smtp_server->name);
 
-    G_OBJECT_CLASS(parent_class)->finalize(object);
+    G_OBJECT_CLASS(libbalsa_smtp_server_parent_class)->finalize(object);
 }
 
 static void
@@ -78,8 +78,6 @@ libbalsa_smtp_server_class_init(LibBalsaSmtpServerClass * klass)
 
     object_class = G_OBJECT_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent(klass);
-
     object_class->finalize = libbalsa_smtp_server_finalize;
 }
 
@@ -92,34 +90,6 @@ libbalsa_smtp_server_init(LibBalsaSmtpServer * smtp_server)
     libbalsa_server_set_remember_passwd(LIBBALSA_SERVER(smtp_server), TRUE);
 }
 
-/* Class boilerplate */
-
-GType
-libbalsa_smtp_server_get_type(void)
-{
-    static GType server_type = 0;
-
-    if (!server_type) {
-        static const GTypeInfo server_info = {
-            sizeof(LibBalsaSmtpServerClass),
-            NULL,               /* base_init */
-            NULL,               /* base_finalize */
-            (GClassInitFunc) libbalsa_smtp_server_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-            sizeof(LibBalsaSmtpServer),
-            0,                  /* n_preallocs */
-            (GInstanceInitFunc) libbalsa_smtp_server_init
-        };
-
-        server_type =
-            g_type_register_static(LIBBALSA_TYPE_SERVER,
-                                   "LibBalsaSmtpServer", &server_info, 0);
-    }
-
-    return server_type;
-}
-
 /* Public methods */
 
 /**
diff --git a/libbalsa/smtp-server.h b/libbalsa/smtp-server.h
index f037d11..3927df4 100644
--- a/libbalsa/smtp-server.h
+++ b/libbalsa/smtp-server.h
@@ -13,7 +13,7 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
  * GNU General Public License for more details.
- *  
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
@@ -22,32 +22,23 @@
 
 #include <gtk/gtk.h>
 #include "libbalsa.h"
+#include "server.h"
 
-#define LIBBALSA_TYPE_SMTP_SERVER                              \
-    (libbalsa_smtp_server_get_type())
-#define LIBBALSA_SMTP_SERVER(obj)                              \
-    (G_TYPE_CHECK_INSTANCE_CAST(obj, LIBBALSA_TYPE_SMTP_SERVER,        \
-                                LibBalsaSmtpServer))
-#define LIBBALSA_SMTP_SERVER_CLASS(klass)                      \
-    (G_TYPE_CHECK_CLASS_CAST(klass, LIBBALSA_TYPE_SMTP_SERVER, \
-                             LibBalsaSmtpServerClass))
-#define LIBBALSA_IS_SMTP_SERVER(obj)                           \
-    (G_TYPE_CHECK_INSTANCE_TYPE(obj, LIBBALSA_TYPE_SMTP_SERVER))
-#define LIBBALSA_IS_SMTP_SERVER_CLASS(klass)                   \
-    (G_TYPE_CHECK_CLASS_TYPE(klass, LIBBALSA_TYPE_SMTP_SERVER))
+#define LIBBALSA_TYPE_SMTP_SERVER libbalsa_smtp_server_get_type()
 
-GType libbalsa_smtp_server_get_type(void);
+G_DECLARE_FINAL_TYPE(LibBalsaSmtpServer,
+                     libbalsa_smtp_server,
+                     LIBBALSA,
+                     SMTP_SERVER,
+                     LibBalsaServer)
 
 LibBalsaSmtpServer *libbalsa_smtp_server_new(void);
-LibBalsaSmtpServer *libbalsa_smtp_server_new_from_config(const gchar *
-                                                         name);
+LibBalsaSmtpServer *libbalsa_smtp_server_new_from_config(const gchar * name);
 void libbalsa_smtp_server_save_config(LibBalsaSmtpServer * server);
 void libbalsa_smtp_server_set_name(LibBalsaSmtpServer * smtp_server,
                                    const gchar * name);
-const gchar *libbalsa_smtp_server_get_name(LibBalsaSmtpServer *
-                                           smtp_server);
-guint libbalsa_smtp_server_get_big_message(LibBalsaSmtpServer *
-                                           smtp_server);
+const gchar *libbalsa_smtp_server_get_name(LibBalsaSmtpServer * smtp_server);
+guint libbalsa_smtp_server_get_big_message(LibBalsaSmtpServer * smtp_server);
 void libbalsa_smtp_server_add_to_list(LibBalsaSmtpServer * smtp_server,
                                       GSList ** server_list);
 


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