[Telepathy-commits] [telepathy-mission-control/master] Keep a pointer to private data

Alberto Mardegan alberto.mardegan at nokia.com
Mon Nov 17 00:05:19 PST 2008


---
 src/mcd-dispatcher.c |   43 ++++++++++++++++++++++---------------------
 src/mcd-dispatcher.h |    2 ++
 2 files changed, 24 insertions(+), 21 deletions(-)

diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index 0274fd4..842750b 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -55,9 +55,7 @@
 
 #include <string.h>
 
-#define MCD_DISPATCHER_PRIV(dispatcher) (G_TYPE_INSTANCE_GET_PRIVATE ((dispatcher), \
-				  MCD_TYPE_DISPATCHER, \
-				  McdDispatcherPrivate))
+#define MCD_DISPATCHER_PRIV(dispatcher) (MCD_DISPATCHER (dispatcher)->priv)
 
 G_DEFINE_TYPE (McdDispatcher, mcd_dispatcher, MCD_TYPE_MISSION);
 
@@ -119,7 +117,7 @@ typedef struct _McdClient
 #define MCD_IFACE_CLIENT_HANDLER "org.freedesktop.Telepathy.Client.Handler"
 #define MCD_IFACE_CLIENT_OBSERVER "org.freedesktop.Telepathy.Client.Observer"
 
-typedef struct _McdDispatcherPrivate
+struct _McdDispatcherPrivate
 {
     /* Pending state machine contexts */
     GSList *state_machine_list;
@@ -143,7 +141,7 @@ typedef struct _McdDispatcherPrivate
  
     gboolean is_disposed;
     
-} McdDispatcherPrivate;
+};
 
 struct iface_chains_t
 {
@@ -264,7 +262,7 @@ _mcd_dispatcher_get_filter_chain (McdDispatcher * dispatcher,
 				  GQuark channel_type_quark,
 				  guint filter_flags)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (dispatcher);
+    McdDispatcherPrivate *priv = dispatcher->priv;
     struct iface_chains_t *iface_chains;
     GList *filter_chain = NULL;
 
@@ -368,7 +366,7 @@ mcd_dispatcher_register_filter (McdDispatcher *dispatcher,
 				guint filter_flags, guint priority,
 				gpointer user_data)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (dispatcher);
+    McdDispatcherPrivate *priv = dispatcher->priv;
     struct iface_chains_t *iface_chains = NULL;
 
     /* Check if the interface already has stored data, otherwise create it */
@@ -413,7 +411,7 @@ mcd_dispatcher_unregister_filter (McdDispatcher * dispatcher,
 				  GQuark channel_type_quark,
 				  guint filter_flags)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (dispatcher);
+    McdDispatcherPrivate *priv = dispatcher->priv;
 
     /* First, do we have anything registered for that channel type? */
     struct iface_chains_t *chains =
@@ -483,7 +481,7 @@ mcd_dispatcher_get_channel_type_usage (McdDispatcher * dispatcher,
 				       GQuark chan_type_quark)
 {
     GList *node;
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (dispatcher);
+    McdDispatcherPrivate *priv = dispatcher->priv;
     gint usage_counter = 0;
     
     node = priv->channels;
@@ -502,7 +500,7 @@ mcd_dispatcher_get_channel_type_usage (McdDispatcher * dispatcher,
 static void
 on_channel_abort_list (McdChannel *channel, McdDispatcher *dispatcher)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (dispatcher);
+    McdDispatcherPrivate *priv = dispatcher->priv;
     
     g_debug ("Abort Channel; Removing channel from list");
     priv->channels = g_list_remove (priv->channels, channel);
@@ -578,7 +576,7 @@ _mcd_dispatcher_handle_channel_async_cb (DBusGProxy * proxy, GError * error,
 					 gpointer userdata)
 {
     McdDispatcherContext *context = userdata;
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (context->dispatcher);
+    McdDispatcherPrivate *priv = context->dispatcher->priv;
     McdChannel *channel;
     const gchar *protocol = NULL;
     GHashTable *channel_handler;
@@ -671,7 +669,7 @@ start_old_channel_handler (McdDispatcherContext *context)
 
     g_return_if_fail (context);
 
-    priv = MCD_DISPATCHER_PRIV (context->dispatcher);
+    priv = context->dispatcher->priv;
     channel = mcd_dispatcher_context_get_channel (context); 
     protocol = mcd_dispatcher_context_get_protocol_name (context);
 
@@ -857,7 +855,7 @@ handle_channels_cb (TpProxy *proxy, const GError *error, gpointer user_data,
 static void
 mcd_dispatcher_run_handler (McdDispatcherContext *context)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (context->dispatcher);
+    McdDispatcherPrivate *priv = context->dispatcher->priv;
     McdClient *handler = NULL;
     GList *list;
 
@@ -953,8 +951,7 @@ _mcd_dispatcher_drop_channel_handler (McdDispatcherContext * context)
 static void
 _mcd_dispatcher_leave_state_machine (McdDispatcherContext * context)
 {
-    McdDispatcherPrivate *priv =
-	MCD_DISPATCHER_PRIV (context->dispatcher);
+    McdDispatcherPrivate *priv = context->dispatcher->priv;
 
     /* _mcd_dispatcher_drop_channel_handler (context); */
 
@@ -982,7 +979,7 @@ _mcd_dispatcher_enter_state_machine (McdDispatcher *dispatcher,
     gboolean outgoing;
     gint filter_flags;
     
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (dispatcher);
+    McdDispatcherPrivate *priv = dispatcher->priv;
 
     chan_type_quark = mcd_channel_get_channel_type_quark (channel);
     g_object_get (G_OBJECT (channel),
@@ -1035,7 +1032,7 @@ _mcd_dispatcher_send (McdDispatcher * dispatcher, McdChannel * channel)
     g_return_if_fail (MCD_IS_CHANNEL (channel));
 
     mcd_channel_set_status (channel, MCD_CHANNEL_DISPATCHING);
-    priv = MCD_DISPATCHER_PRIV (dispatcher);
+    priv = dispatcher->priv;
 
     /* it can happen that this function gets called when the same channel has
      * already entered the state machine or even when it has already been
@@ -1510,7 +1507,11 @@ _channel_capabilities (gchar *ctype, GHashTable *channel_handler,
 static void
 mcd_dispatcher_init (McdDispatcher * dispatcher)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (dispatcher);
+    McdDispatcherPrivate *priv;
+
+    priv = G_TYPE_INSTANCE_GET_PRIVATE (dispatcher, MCD_TYPE_DISPATCHER,
+                                        McdDispatcherPrivate);
+    dispatcher->priv = priv;
 
     g_datalist_init (&(priv->interface_filters));
     
@@ -1533,7 +1534,7 @@ mcd_dispatcher_new (TpDBusDaemon *dbus_daemon, McdMaster *master)
 void
 mcd_dispatcher_context_process (McdDispatcherContext * context, gboolean result)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (context->dispatcher);
+    McdDispatcherPrivate *priv = context->dispatcher->priv;
     
     if (result)
     {
@@ -1659,7 +1660,7 @@ mcd_dispatcher_context_get_channel (McdDispatcherContext * ctx)
 McdChannelHandler *
 mcd_dispatcher_context_get_chan_handler (McdDispatcherContext * ctx)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (ctx->dispatcher);
+    McdDispatcherPrivate *priv = ctx->dispatcher->priv;
     McdChannel *channel;
     const gchar *protocol;
     McdChannelHandler *chandler;
@@ -1690,7 +1691,7 @@ mcd_dispatcher_context_get_members (McdDispatcherContext * ctx)
 GPtrArray *mcd_dispatcher_get_channel_capabilities (McdDispatcher * dispatcher,
 						    const gchar *protocol)
 {
-    McdDispatcherPrivate *priv = MCD_DISPATCHER_PRIV (dispatcher);
+    McdDispatcherPrivate *priv = dispatcher->priv;
     McdDispatcherArgs args;
 
     args.dispatcher = dispatcher;
diff --git a/src/mcd-dispatcher.h b/src/mcd-dispatcher.h
index c107eeb..c61ef2e 100644
--- a/src/mcd-dispatcher.h
+++ b/src/mcd-dispatcher.h
@@ -41,6 +41,7 @@ G_BEGIN_DECLS
 
 typedef struct _McdDispatcher McdDispatcher;
 typedef struct _McdDispatcherClass McdDispatcherClass;
+typedef struct _McdDispatcherPrivate McdDispatcherPrivate;
 typedef struct _McdDispatcherStatus McdDispatcherStatus;
 
 #include "mcd-channel.h"
@@ -49,6 +50,7 @@ typedef struct _McdDispatcherStatus McdDispatcherStatus;
 struct _McdDispatcher
 {
     McdMission parent;
+    McdDispatcherPrivate *priv;
 };
 
 struct _McdDispatcherClass
-- 
1.5.6.5




More information about the Telepathy-commits mailing list