[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