[Telepathy-commits] [telepathy-salut/master] generate FT channel path in the channel constructor and using its address to ensure it's unique

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Mon Mar 16 07:55:27 PDT 2009


---
 src/salut-file-transfer-channel.c |    7 +++----
 src/salut-file-transfer-channel.h |    4 ++--
 src/salut-ft-manager.c            |   30 ++----------------------------
 3 files changed, 7 insertions(+), 34 deletions(-)

diff --git a/src/salut-file-transfer-channel.c b/src/salut-file-transfer-channel.c
index 5d16b6f..5ac3db6 100644
--- a/src/salut-file-transfer-channel.c
+++ b/src/salut-file-transfer-channel.c
@@ -431,6 +431,9 @@ salut_file_transfer_channel_constructor (GType type,
 
   tp_handle_ref (contact_repo, self->priv->handle);
 
+  self->priv->object_path = g_strdup_printf ("%s/FileTransferChannel/%p",
+      base_conn->object_path, self);
+
   /* Connect to the bus */
   bus = tp_get_bus ();
   dbus_g_connection_register_g_object (bus, self->priv->object_path, obj);
@@ -1517,7 +1520,6 @@ setup_local_socket (SalutFileTransferChannel *self)
 SalutFileTransferChannel *
 salut_file_transfer_channel_new (SalutConnection *conn,
                                  SalutContact *contact,
-                                 const gchar *path,
                                  TpHandle handle,
                                  SalutXmppConnectionManager *xcm,
                                  TpHandle initiator_handle,
@@ -1534,7 +1536,6 @@ salut_file_transfer_channel_new (SalutConnection *conn,
   return g_object_new (SALUT_TYPE_FILE_TRANSFER_CHANNEL,
       "connection", conn,
       "contact", contact,
-      "object-path", path,
       "handle", handle,
       "xmpp-connection-manager", xcm,
       "initiator-handle", initiator_handle,
@@ -1553,7 +1554,6 @@ salut_file_transfer_channel_new (SalutConnection *conn,
 SalutFileTransferChannel *
 salut_file_transfer_channel_new_from_stanza (SalutConnection *connection,
                                              SalutContact *contact,
-                                             const gchar *path,
                                              TpHandle handle,
                                              SalutXmppConnectionManager *xcm,
                                              TpFileTransferState state,
@@ -1582,7 +1582,6 @@ salut_file_transfer_channel_new_from_stanza (SalutConnection *connection,
   chan = g_object_new (SALUT_TYPE_FILE_TRANSFER_CHANNEL,
       "connection", connection,
       "contact", contact,
-      "object-path", path,
       "handle", handle,
       "xmpp-connection-manager", xcm,
       "initiator-handle", handle,
diff --git a/src/salut-file-transfer-channel.h b/src/salut-file-transfer-channel.h
index 3a6bb72..7acfd49 100644
--- a/src/salut-file-transfer-channel.h
+++ b/src/salut-file-transfer-channel.h
@@ -75,7 +75,7 @@ gboolean salut_file_transfer_channel_offer_file (SalutFileTransferChannel *self,
     GError **error);
 
 SalutFileTransferChannel * salut_file_transfer_channel_new (
-    SalutConnection *conn, SalutContact *contact, const gchar *path,
+    SalutConnection *conn, SalutContact *contact,
     TpHandle handle, SalutXmppConnectionManager *xcm, TpHandle initiator_handle,
     TpFileTransferState state, const gchar *content_type,
     const gchar *filename, guint64 size, TpFileHashType hash_type,
@@ -83,7 +83,7 @@ SalutFileTransferChannel * salut_file_transfer_channel_new (
     guint64 initial_offset);
 
 SalutFileTransferChannel * salut_file_transfer_channel_new_from_stanza (
-    SalutConnection *connection, SalutContact *contact, const gchar *path,
+    SalutConnection *connection, SalutContact *contact,
     TpHandle handle, SalutXmppConnectionManager *xcm,
     TpFileTransferState state, GibberXmppStanza *stanza,
     GibberXmppConnection *conn);
diff --git a/src/salut-ft-manager.c b/src/salut-ft-manager.c
index 19d2162..c0db9f6 100644
--- a/src/salut-ft-manager.c
+++ b/src/salut-ft-manager.c
@@ -91,23 +91,6 @@ message_stanza_filter (SalutXmppConnectionManager *mgr,
   return gibber_file_transfer_is_file_offer (stanza);
 }
 
-static gchar *
-generate_object_path (SalutFtManager *self,
-                      TpHandle handle)
-{
-  SalutFtManagerPrivate *priv = SALUT_FT_MANAGER_GET_PRIVATE (self);
-  TpBaseConnection *base_connection = TP_BASE_CONNECTION (priv->connection);
-  /* Increasing guint to make sure object paths are random */
-  static guint id = 0;
-  gchar *path;
-
-  path = g_strdup_printf ("%s/FileTransferChannel/%u/%u",
-      base_connection->object_path, handle, id++);
-
-  DEBUG ("Object path of file channel is %s", path);
-  return path;
-}
-
 static void
 message_stanza_callback (SalutXmppConnectionManager *mgr,
                          GibberXmppConnection *conn,
@@ -122,22 +105,17 @@ message_stanza_callback (SalutXmppConnectionManager *mgr,
   TpBaseConnection *base_conn = TP_BASE_CONNECTION (priv->connection);
   TpHandleRepoIface *handle_repo = tp_base_connection_get_handles (base_conn,
        TP_HANDLE_TYPE_CONTACT);
-  gchar *path;
 
   handle = tp_handle_lookup (handle_repo, contact->name, NULL, NULL);
   g_assert (handle != 0);
 
   DEBUG ("new incoming channel");
 
-  path = generate_object_path (self, handle);
-
   chan = salut_file_transfer_channel_new_from_stanza (priv->connection,
-      contact, path, handle, priv->xmpp_connection_manager,
+      contact, handle, priv->xmpp_connection_manager,
       TP_FILE_TRANSFER_STATE_PENDING, stanza, conn);
 
   salut_ft_manager_channel_created (self, chan, NULL);
-
-  g_free (path);
 }
 
 static void salut_ft_manager_dispose (GObject *object);
@@ -310,7 +288,6 @@ salut_ft_manager_handle_request (TpChannelManager *manager,
   GError *error = NULL;
   gboolean valid;
   SalutContact *contact;
-  gchar *path = NULL;
 
   DEBUG ("File transfer request");
 
@@ -423,14 +400,11 @@ salut_ft_manager_handle_request (TpChannelManager *manager,
 
   DEBUG ("Requested outgoing channel for handle: %d", handle);
 
-  path = generate_object_path (self, handle);
-
-  chan = salut_file_transfer_channel_new (priv->connection, contact, path,
+  chan = salut_file_transfer_channel_new (priv->connection, contact,
       handle, priv->xmpp_connection_manager, base_connection->self_handle,
       TP_FILE_TRANSFER_STATE_PENDING, content_type, filename, size,
       content_hash_type, content_hash, description, date, initial_offset);
 
-  g_free (path);
   g_object_unref (contact);
 
   if (!salut_file_transfer_channel_offer_file (chan, &error))
-- 
1.5.6.5




More information about the telepathy-commits mailing list