[evolution-data-server] EBookBackend cleanup.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] EBookBackend cleanup.
- Date: Tue, 20 Jul 2010 14:47:04 +0000 (UTC)
commit 97410881e3ea7564f8683ea8f96de8265b6b5170
Author: Matthew Barnes <mbarnes redhat com>
Date: Tue Jul 20 08:12:14 2010 -0400
EBookBackend cleanup.
addressbook/libedata-book/e-book-backend.c | 149 +++++++++++++++-------------
1 files changed, 78 insertions(+), 71 deletions(-)
---
diff --git a/addressbook/libedata-book/e-book-backend.c b/addressbook/libedata-book/e-book-backend.c
index de3c327..3ad5152 100644
--- a/addressbook/libedata-book/e-book-backend.c
+++ b/addressbook/libedata-book/e-book-backend.c
@@ -12,7 +12,9 @@
#include "e-data-book.h"
#include "e-book-backend.h"
-G_DEFINE_TYPE (EBookBackend, e_book_backend, G_TYPE_OBJECT)
+#define E_BOOK_BACKEND_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE \
+ ((obj), E_TYPE_BOOK_BACKEND, EBookBackendPrivate))
struct _EBookBackendPrivate {
GMutex *open_mutex;
@@ -33,9 +35,81 @@ enum {
LAST_SIGNAL
};
-static guint e_book_backend_signals[LAST_SIGNAL];
+static guint signals[LAST_SIGNAL];
+
+G_DEFINE_TYPE (EBookBackend, e_book_backend, G_TYPE_OBJECT)
+
+static void
+book_backend_dispose (GObject *object)
+{
+ EBookBackendPrivate *priv;
+
+ priv = E_BOOK_BACKEND_GET_PRIVATE (object);
+
+ if (priv->views != NULL) {
+ g_object_unref (priv->views);
+ priv->views = NULL;
+ }
+
+ if (priv->source != NULL) {
+ g_object_unref (priv->source);
+ priv->source = NULL;
+ }
+
+ /* Chain up to parent's dispose() method. */
+ G_OBJECT_CLASS (e_book_backend_parent_class)->dispose (object);
+}
+
+static void
+book_backend_finalize (GObject *object)
+{
+ EBookBackendPrivate *priv;
+
+ priv = E_BOOK_BACKEND_GET_PRIVATE (object);
+
+ g_list_free (priv->clients);
-static GObjectClass *parent_class;
+ g_mutex_free (priv->open_mutex);
+ g_mutex_free (priv->clients_mutex);
+ g_mutex_free (priv->views_mutex);
+
+ /* Chain up to parent's finalize() method. */
+ G_OBJECT_CLASS (e_book_backend_parent_class)->finalize (object);
+}
+
+static void
+e_book_backend_class_init (EBookBackendClass *class)
+{
+ GObjectClass *object_class;
+
+ g_type_class_add_private (class, sizeof (EBookBackendPrivate));
+
+ object_class = G_OBJECT_CLASS (class);
+ object_class->dispose = book_backend_dispose;
+ object_class->finalize = book_backend_finalize;
+
+ signals[LAST_CLIENT_GONE] = g_signal_new (
+ "last-client-gone",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (EBookBackendClass, last_client_gone),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+}
+
+static void
+e_book_backend_init (EBookBackend *backend)
+{
+ backend->priv = E_BOOK_BACKEND_GET_PRIVATE (backend);
+
+ backend->priv->views = e_list_new (
+ (EListCopyFunc) NULL, (EListFreeFunc) NULL, NULL);
+
+ backend->priv->open_mutex = g_mutex_new ();
+ backend->priv->clients_mutex = g_mutex_new ();
+ backend->priv->views_mutex = g_mutex_new ();
+}
/**
* e_book_backend_construct:
@@ -478,7 +552,7 @@ e_book_backend_cancel_operation (EBookBackend *backend,
static void
last_client_gone (EBookBackend *backend)
{
- g_signal_emit (backend, e_book_backend_signals[LAST_CLIENT_GONE], 0);
+ g_signal_emit (backend, signals[LAST_CLIENT_GONE], 0);
}
/**
@@ -988,70 +1062,3 @@ e_book_backend_notify_auth_required (EBookBackend *backend)
g_mutex_unlock (priv->clients_mutex);
}
-static void
-e_book_backend_init (EBookBackend *backend)
-{
- EBookBackendPrivate *priv;
-
- priv = g_new0 (EBookBackendPrivate, 1);
- priv->clients = NULL;
- priv->source = NULL;
- priv->views = e_list_new((EListCopyFunc) NULL, (EListFreeFunc) NULL, NULL);
- priv->open_mutex = g_mutex_new ();
- priv->clients_mutex = g_mutex_new ();
- priv->views_mutex = g_mutex_new ();
-
- backend->priv = priv;
-}
-
-static void
-e_book_backend_dispose (GObject *object)
-{
- EBookBackend *backend;
-
- backend = E_BOOK_BACKEND (object);
-
- if (backend->priv) {
- g_list_free (backend->priv->clients);
-
- if (backend->priv->views) {
- g_object_unref (backend->priv->views);
- backend->priv->views = NULL;
- }
-
- if (backend->priv->source) {
- g_object_unref (backend->priv->source);
- backend->priv->source = NULL;
- }
-
- g_mutex_free (backend->priv->open_mutex);
- g_mutex_free (backend->priv->clients_mutex);
- g_mutex_free (backend->priv->views_mutex);
-
- g_free (backend->priv);
- backend->priv = NULL;
- }
-
- G_OBJECT_CLASS (parent_class)->dispose (object);
-}
-
-static void
-e_book_backend_class_init (EBookBackendClass *klass)
-{
- GObjectClass *object_class;
-
- parent_class = g_type_class_peek_parent (klass);
-
- object_class = (GObjectClass *) klass;
-
- object_class->dispose = e_book_backend_dispose;
-
- e_book_backend_signals[LAST_CLIENT_GONE] =
- g_signal_new ("last-client-gone",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (EBookBackendClass, last_client_gone),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]