[telepathy-qt4/master] Account: Added ChannelDispatcher support.
Andre Moreira Magalhaes (andrunko)
andre.magalhaes at collabora.co.uk
Thu Jun 11 08:18:30 PDT 2009
---
TelepathyQt4/account.cpp | 101 ++++++++++++++++++++++++++++++++++++++++++++++
TelepathyQt4/account.h | 34 +++++++++++++++
2 files changed, 135 insertions(+), 0 deletions(-)
diff --git a/TelepathyQt4/account.cpp b/TelepathyQt4/account.cpp
index 00cda30..9d6ff59 100644
--- a/TelepathyQt4/account.cpp
+++ b/TelepathyQt4/account.cpp
@@ -29,10 +29,12 @@
#include <TelepathyQt4/AccountManager>
#include <TelepathyQt4/ConnectionManager>
+#include <TelepathyQt4/PendingChannelRequest>
#include <TelepathyQt4/PendingFailure>
#include <TelepathyQt4/PendingReady>
#include <TelepathyQt4/PendingStringList>
#include <TelepathyQt4/PendingVoidMethodCall>
+#include <TelepathyQt4/ReferencedHandles>
#include <TelepathyQt4/Constants>
#include <TelepathyQt4/Debug>
@@ -695,6 +697,105 @@ PendingOperation *Account::remove()
return new PendingVoidMethodCall(this, baseInterface()->Remove());
}
+PendingChannelRequest *Account::ensureTextChat(
+ const QString &contactIdentifier,
+ QDateTime userActionTime,
+ const QString &preferredHandler)
+{
+ QVariantMap request;
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".ChannelType"),
+ TELEPATHY_INTERFACE_CHANNEL_TYPE_TEXT);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetHandleType"),
+ Tp::HandleTypeContact);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetID"),
+ contactIdentifier);
+ return new PendingChannelRequest(dbusConnection(), objectPath(),
+ request, userActionTime, preferredHandler, false, this);
+}
+
+PendingChannelRequest *Account::ensureTextChat(
+ const ContactPtr &contact,
+ QDateTime userActionTime,
+ const QString &preferredHandler)
+{
+ QVariantMap request;
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".ChannelType"),
+ TELEPATHY_INTERFACE_CHANNEL_TYPE_TEXT);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetHandleType"),
+ Tp::HandleTypeContact);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetHandle"),
+ contact ? contact->handle().at(0) : 0);
+ return new PendingChannelRequest(dbusConnection(), objectPath(),
+ request, userActionTime, preferredHandler, false, this);
+}
+
+PendingChannelRequest *Account::ensureTextChatroom(
+ const QString &roomName,
+ QDateTime userActionTime,
+ const QString &preferredHandler)
+{
+ QVariantMap request;
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".ChannelType"),
+ TELEPATHY_INTERFACE_CHANNEL_TYPE_TEXT);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetHandleType"),
+ Tp::HandleTypeRoom);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetID"),
+ roomName);
+ return new PendingChannelRequest(dbusConnection(), objectPath(),
+ request, userActionTime, preferredHandler, false, this);
+}
+
+PendingChannelRequest *Account::ensureMediaCall(
+ const QString &contactIdentifier,
+ QDateTime userActionTime,
+ const QString &preferredHandler)
+{
+ QVariantMap request;
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".ChannelType"),
+ TELEPATHY_INTERFACE_CHANNEL_TYPE_STREAMED_MEDIA);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetHandleType"),
+ Tp::HandleTypeContact);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetID"),
+ contactIdentifier);
+ return new PendingChannelRequest(dbusConnection(), objectPath(),
+ request, userActionTime, preferredHandler, false, this);
+}
+
+PendingChannelRequest *Account::ensureMediaCall(
+ const ContactPtr &contact,
+ QDateTime userActionTime,
+ const QString &preferredHandler)
+{
+ QVariantMap request;
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".ChannelType"),
+ TELEPATHY_INTERFACE_CHANNEL_TYPE_STREAMED_MEDIA);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetHandleType"),
+ Tp::HandleTypeContact);
+ request.insert(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetHandle"),
+ contact ? contact->handle().at(0) : 0);
+ return new PendingChannelRequest(dbusConnection(), objectPath(),
+ request, userActionTime, preferredHandler, false, this);
+}
+
+// advanced
+PendingChannelRequest *Account::createChannel(
+ const QVariantMap &request,
+ QDateTime userActionTime,
+ const QString &preferredHandler)
+{
+ return new PendingChannelRequest(dbusConnection(), objectPath(),
+ request, userActionTime, preferredHandler, true, this);
+}
+
+PendingChannelRequest *Account::ensureChannel(
+ const QVariantMap &request,
+ QDateTime userActionTime,
+ const QString &preferredHandler)
+{
+ return new PendingChannelRequest(dbusConnection(), objectPath(),
+ request, userActionTime, preferredHandler, false, this);
+}
+
QStringList Account::interfaces() const
{
return mPriv->interfaces;
diff --git a/TelepathyQt4/account.h b/TelepathyQt4/account.h
index dbbf27e..c19b115 100644
--- a/TelepathyQt4/account.h
+++ b/TelepathyQt4/account.h
@@ -48,6 +48,7 @@ namespace Tp
class Account;
class Connection;
+class PendingChannelRequest;
class PendingConnection;
class PendingOperation;
class PendingReady;
@@ -135,6 +136,39 @@ public:
PendingOperation *remove();
+ PendingChannelRequest *ensureTextChat(
+ const QString &contactIdentifier,
+ QDateTime userActionTime = QDateTime::currentDateTime(),
+ const QString &preferredHandler = QString());
+ PendingChannelRequest *ensureTextChat(
+ const ContactPtr &contact,
+ QDateTime userActionTime = QDateTime::currentDateTime(),
+ const QString &preferredHandler = QString());
+
+ PendingChannelRequest *ensureTextChatroom(
+ const QString &roomName,
+ QDateTime userActionTime = QDateTime::currentDateTime(),
+ const QString &preferredHandler = QString());
+
+ PendingChannelRequest *ensureMediaCall(
+ const QString &contactIdentifier,
+ QDateTime userActionTime = QDateTime::currentDateTime(),
+ const QString &preferredHandler = QString());
+ PendingChannelRequest *ensureMediaCall(
+ const ContactPtr &contact,
+ QDateTime userActionTime = QDateTime::currentDateTime(),
+ const QString &preferredHandler = QString());
+
+ // advanced
+ PendingChannelRequest *createChannel(
+ const QVariantMap &requestedProperties,
+ QDateTime userActionTime = QDateTime::currentDateTime(),
+ const QString &preferredHandler = QString());
+ PendingChannelRequest *ensureChannel(
+ const QVariantMap &requestedProperties,
+ QDateTime userActionTime = QDateTime::currentDateTime(),
+ const QString &preferredHandler = QString());
+
QStringList interfaces() const;
template <class Interface>
--
1.5.6.5
More information about the telepathy-commits
mailing list