/* empathy-ft-factory.c */
-#include <glib.h>
-
-#include <telepathy-glib/telepathy-glib.h>
-
+#include "config.h"
#include "empathy-ft-factory.h"
-#include "empathy-ft-handler.h"
-#include "empathy-marshal.h"
+
+#include "empathy-request-util.h"
#include "empathy-utils.h"
/**
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, 0,
NULL, NULL,
- _empathy_marshal_VOID__OBJECT_POINTER,
+ g_cclosure_marshal_generic,
G_TYPE_NONE, 2, EMPATHY_TYPE_FT_HANDLER, G_TYPE_POINTER);
/**
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, 0,
NULL, NULL,
- _empathy_marshal_VOID__OBJECT_POINTER,
+ g_cclosure_marshal_generic,
G_TYPE_NONE, 2, EMPATHY_TYPE_FT_HANDLER, G_TYPE_POINTER);
}
for (l = channels; l != NULL; l = g_list_next (l))
{
TpChannel *channel = l->data;
- EmpathyTpFile *tp_file;
if (tp_proxy_get_invalidated (channel) != NULL)
continue;
- if (tp_channel_get_channel_type_id (channel) !=
- TP_IFACE_QUARK_CHANNEL_TYPE_FILE_TRANSFER)
+ if (!TP_IS_FILE_TRANSFER_CHANNEL (channel))
continue;
- tp_file = empathy_tp_file_new (channel);
-
/* We handle only incoming FT */
- empathy_ft_handler_new_incoming (tp_file, ft_handler_incoming_ready_cb,
- self);
-
- g_object_unref (tp_file);
+ empathy_ft_handler_new_incoming ((TpFileTransferChannel *) channel,
+ ft_handler_incoming_ready_cb, self);
}
{
EmpathyFTFactoryPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
EMPATHY_TYPE_FT_FACTORY, EmpathyFTFactoryPriv);
- TpDBusDaemon *dbus;
- GError *error = NULL;
+ TpAccountManager *am;
self->priv = priv;
- dbus = tp_dbus_daemon_dup (&error);
- if (dbus == NULL)
- {
- g_warning ("Failed to get TpDBusDaemon: %s", error->message);
- g_error_free (error);
- return;
- }
+ am = tp_account_manager_dup ();
- priv->handler = tp_simple_handler_new (dbus, FALSE, FALSE,
- "Empathy.FileTransfer", FALSE, handle_channels_cb, self, NULL);
+ priv->handler = tp_simple_handler_new_with_am (am, FALSE, FALSE,
+ EMPATHY_FT_BUS_NAME_SUFFIX, FALSE, handle_channels_cb, self, NULL);
tp_base_client_take_handler_filter (priv->handler, tp_asv_new (
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
TP_PROP_CHANNEL_REQUESTED, G_TYPE_BOOLEAN, FALSE,
NULL));
- g_object_unref (dbus);
+ g_object_unref (am);
}
static void
GError *error,
gpointer user_data)
{
- EmpathyFTFactory *factory = user_data;
+ EmpathyFTFactory *factory = EMPATHY_FT_FACTORY (user_data);
g_signal_emit (factory, signals[NEW_FT_HANDLER], 0, handler, error);
+
+ g_object_unref (factory);
}
/* public methods */
void
empathy_ft_factory_new_transfer_outgoing (EmpathyFTFactory *factory,
EmpathyContact *contact,
- GFile *source)
+ GFile *source,
+ gint64 action_time)
{
g_return_if_fail (EMPATHY_IS_FT_FACTORY (factory));
g_return_if_fail (EMPATHY_IS_CONTACT (contact));
g_return_if_fail (G_IS_FILE (source));
- empathy_ft_handler_new_outgoing (contact, source,
- ft_handler_outgoing_ready_cb, factory);
+ empathy_ft_handler_new_outgoing (contact, source, action_time,
+ ft_handler_outgoing_ready_cb, g_object_ref (factory));
}
/**