summaryrefslogtreecommitdiff
path: root/telepathy-glib
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2014-02-25 14:20:50 +0100
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2014-02-25 14:25:11 +0100
commit6d1aed685b8860d2e0cc4d12b251d19616617819 (patch)
treedbaece53012389c435f2420b9e8d7f7f46145455 /telepathy-glib
parentb99443c02d20923988dc97318e6cf572e9b5e66f (diff)
downloadtelepathy-glib-6d1aed685b8860d2e0cc4d12b251d19616617819.tar.gz
add tp_account_channel_request_new_dbus_tube()
Diffstat (limited to 'telepathy-glib')
-rw-r--r--telepathy-glib/account-channel-request.c49
-rw-r--r--telepathy-glib/account-channel-request.h6
2 files changed, 55 insertions, 0 deletions
diff --git a/telepathy-glib/account-channel-request.c b/telepathy-glib/account-channel-request.c
index deb9c367d..a96fee931 100644
--- a/telepathy-glib/account-channel-request.c
+++ b/telepathy-glib/account-channel-request.c
@@ -2475,3 +2475,52 @@ tp_account_channel_request_new_stream_tube (TpAccount *account,
g_hash_table_unref (request);
return self;
}
+
+/**
+ * tp_account_channel_request_new_dbus_tube:
+ * @account: a #TpAccount
+ * @service_name: the service name that will be used over the tube. It should be
+ * @user_action_time: the time of the user action that caused this request,
+ * or one of the special values %TP_USER_ACTION_TIME_NOT_USER_ACTION or
+ * %TP_USER_ACTION_TIME_CURRENT_TIME (see
+ * #TpAccountChannelRequest:user-action-time)
+ *
+ * Convenience function to create a new #TpAccountChannelRequest object,
+ * which will yield a DBusTube channel.
+ *
+ * After creating the request, you will also need to set the "target"
+ * of the channel by calling one of the following functions:
+ *
+ * - tp_account_channel_request_set_target_contact()
+ * - tp_account_channel_request_set_target_id()
+ *
+ * Returns: a new #TpAccountChannelRequest object
+ *
+ * Since: UNRELEASED
+ */
+TpAccountChannelRequest *
+tp_account_channel_request_new_dbus_tube (TpAccount *account,
+ const gchar *service_name,
+ gint64 user_action_time)
+{
+ TpAccountChannelRequest *self;
+ GHashTable *request;
+
+ g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL);
+ g_return_val_if_fail (!tp_str_empty (service_name), NULL);
+
+ request = tp_asv_new (
+ TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
+ TP_IFACE_CHANNEL_TYPE_DBUS_TUBE,
+ TP_PROP_CHANNEL_TYPE_DBUS_TUBE_SERVICE_NAME, G_TYPE_STRING, service_name,
+ NULL);
+
+ self = g_object_new (TP_TYPE_ACCOUNT_CHANNEL_REQUEST,
+ "account", account,
+ "request", request,
+ "user-action-time", user_action_time,
+ NULL);
+
+ g_hash_table_unref (request);
+ return self;
+}
diff --git a/telepathy-glib/account-channel-request.h b/telepathy-glib/account-channel-request.h
index b670222fd..2c8043089 100644
--- a/telepathy-glib/account-channel-request.h
+++ b/telepathy-glib/account-channel-request.h
@@ -166,6 +166,12 @@ TpAccountChannelRequest *tp_account_channel_request_new_stream_tube (
const gchar *service,
gint64 user_action_time) G_GNUC_WARN_UNUSED_RESULT;
+_TP_AVAILABLE_IN_0_24
+TpAccountChannelRequest *tp_account_channel_request_new_dbus_tube (
+ TpAccount *account,
+ const gchar *service_name,
+ gint64 user_action_time) G_GNUC_WARN_UNUSED_RESULT;
+
/* Channel target (shared between all channel types) */
_TP_AVAILABLE_IN_0_20