[telepathy-mission-control/master] McdChannel: Don't let anything outside this library call mcd_channel_set_status

Simon McVittie simon.mcvittie at collabora.co.uk
Fri Apr 3 08:21:21 PDT 2009


It's easier to reason about channel statuses if we know nobody else can
call it.
---
 src/mcd-channel.c    |    8 ++++----
 src/mcd-channel.h    |    4 +++-
 src/mcd-connection.c |    4 ++--
 src/mcd-dispatcher.c |   18 +++++++++---------
 4 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/src/mcd-channel.c b/src/mcd-channel.c
index 1deaf00..0efb6b0 100644
--- a/src/mcd-channel.c
+++ b/src/mcd-channel.c
@@ -749,7 +749,7 @@ _mcd_channel_create_proxy (McdChannel *channel, TpConnection *connection,
 }
 
 void
-mcd_channel_set_status (McdChannel *channel, McdChannelStatus status)
+_mcd_channel_set_status (McdChannel *channel, McdChannelStatus status)
 {
     DEBUG ("%p, %u", channel, status);
     g_return_if_fail(MCD_IS_CHANNEL(channel));
@@ -1093,7 +1093,7 @@ mcd_channel_take_error (McdChannel *channel, GError *error)
     g_object_set_data_full ((GObject *)channel, CD_ERROR,
                             error, (GDestroyNotify)g_error_free);
     if (error)
-        mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_FAILED);
+        _mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_FAILED);
 }
 
 /**
@@ -1157,7 +1157,7 @@ mcd_channel_new_request (McdAccount *account,
     channel->priv->satisfied_requests = g_list_prepend (NULL,
                                                         g_strdup (crd->path));
 
-    mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_REQUEST);
+    _mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_REQUEST);
 
     /* This could do with refactoring so that requests are a separate object
      * that dies at the appropriate time, but for now the path of least
@@ -1322,7 +1322,7 @@ copy_status (McdChannel *source, McdChannel *dest)
             mcd_channel_take_error (dest, g_error_copy (error));
         }
         else
-            mcd_channel_set_status (dest, src_priv->status);
+            _mcd_channel_set_status (dest, src_priv->status);
     }
 
     if (dst_priv->status == MCD_CHANNEL_STATUS_FAILED ||
diff --git a/src/mcd-channel.h b/src/mcd-channel.h
index 4281ed8..8a00ab1 100644
--- a/src/mcd-channel.h
+++ b/src/mcd-channel.h
@@ -110,7 +110,9 @@ gboolean _mcd_channel_create_proxy (McdChannel *channel,
                                     const gchar *object_path,
                                     const GHashTable *properties);
 
-void mcd_channel_set_status (McdChannel *channel, McdChannelStatus status);
+G_GNUC_INTERNAL
+void _mcd_channel_set_status (McdChannel *channel, McdChannelStatus status);
+
 McdChannelStatus mcd_channel_get_status (McdChannel * channel);
 gboolean mcd_channel_get_members_accepted (McdChannel *channel);
 const gchar* mcd_channel_get_channel_type (McdChannel *channel);
diff --git a/src/mcd-connection.c b/src/mcd-connection.c
index 4e4a3ce..ecaef68 100644
--- a/src/mcd-connection.c
+++ b/src/mcd-connection.c
@@ -507,7 +507,7 @@ on_new_channel (TpConnection *proxy, const gchar *chan_obj_path,
                                 tcd, mcd_tmp_channel_data_free);
         mcd_operation_take_mission (MCD_OPERATION (connection),
                                     MCD_MISSION (channel));
-        mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_UNDISPATCHED);
+        _mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_UNDISPATCHED);
     }
 }
 
@@ -1878,7 +1878,7 @@ _mcd_connection_request_channel (McdConnection *connection,
         ret = request_channel_old_iface (connection, channel);
 
     if (ret)
-        mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_REQUESTED);
+        _mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_REQUESTED);
     return ret;
 }
 
diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index 40607ab..69c2651 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -815,7 +815,7 @@ _mcd_dispatcher_handle_channel_async_cb (DBusGProxy * proxy, GError * error,
             g_error_free (unique_proxy_error);
     }
 
-    mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_DISPATCHED);
+    _mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_DISPATCHED);
     g_signal_emit_by_name (context->dispatcher, "dispatched", channel);
     mcd_dispatcher_context_handler_done (context);
 }
@@ -1157,7 +1157,7 @@ handle_channels_cb (TpProxy *proxy, const GError *error, gpointer user_data,
             McdChannel *channel = MCD_CHANNEL (list->data);
 
             /* TODO: abort the channel if the handler dies */
-            mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_DISPATCHED);
+            _mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_DISPATCHED);
             g_signal_emit_by_name (context->dispatcher, "dispatched", channel);
         }
     }
@@ -1287,8 +1287,8 @@ mcd_dispatcher_run_handler (McdDispatcherContext *context,
             if (user_time)
                 user_action_time = user_time;
 
-            mcd_channel_set_status (channel,
-                                    MCD_CHANNEL_STATUS_HANDLER_INVOKED);
+            _mcd_channel_set_status (channel,
+                                     MCD_CHANNEL_STATUS_HANDLER_INVOKED);
         }
 
         /* The callback needs to get the dispatcher context, and the channels
@@ -1651,7 +1651,7 @@ on_operation_finished (McdDispatchOperation *operation,
             McdChannel *channel = MCD_CHANNEL (list->data);
 
             /* TODO: abort the channel if the handler dies */
-            mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_DISPATCHED);
+            _mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_DISPATCHED);
             g_signal_emit_by_name (context->dispatcher, "dispatched", channel);
         }
 
@@ -3202,8 +3202,8 @@ _mcd_dispatcher_send_channels (McdDispatcher *dispatcher, GList *channels,
     GList *list;
 
     for (list = channels; list != NULL; list = list->next)
-        mcd_channel_set_status (MCD_CHANNEL (list->data),
-                                MCD_CHANNEL_STATUS_DISPATCHING);
+        _mcd_channel_set_status (MCD_CHANNEL (list->data),
+                                 MCD_CHANNEL_STATUS_DISPATCHING);
 
     _mcd_dispatcher_enter_state_machine (dispatcher, channels, requested);
 }
@@ -3459,8 +3459,8 @@ check_handled_channels (gpointer object, const GError *error,
             {
                 DEBUG ("Channel %s is handled by %s", path, client->name);
                 cr->handled = TRUE;
-                mcd_channel_set_status (cr->channel,
-                                        MCD_CHANNEL_STATUS_DISPATCHED);
+                _mcd_channel_set_status (cr->channel,
+                                         MCD_CHANNEL_STATUS_DISPATCHED);
                 break;
             }
         }
-- 
1.5.6.5




More information about the telepathy-commits mailing list