[telepathy-qt4/master] ClientRegistrar: Use ChannelDispatchOperation high-level class on AbstractClientApprover.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Mon Jun 1 22:35:39 PDT 2009


---
 TelepathyQt4/abstract-client.h    |    3 +--
 TelepathyQt4/client-registrar.cpp |    8 +++++++-
 tests/dbus/client.cpp             |    9 +++++----
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/TelepathyQt4/abstract-client.h b/TelepathyQt4/abstract-client.h
index 4d8dafa..ff991bf 100644
--- a/TelepathyQt4/abstract-client.h
+++ b/TelepathyQt4/abstract-client.h
@@ -83,8 +83,7 @@ public:
 
     virtual void addDispatchOperation(const MethodInvocationContextPtr<> &context,
             const QList<ChannelPtr> &channels,
-            const QString &dispatchOperationPath,
-            const QVariantMap &dispatchOperationProperties) = 0;
+            const ChannelDispatchOperationPtr &dispatchOperation) = 0;
 
 protected:
     AbstractClientApprover(const ChannelClassList &channelFilter);
diff --git a/TelepathyQt4/client-registrar.cpp b/TelepathyQt4/client-registrar.cpp
index ad90c52..b5485ca 100644
--- a/TelepathyQt4/client-registrar.cpp
+++ b/TelepathyQt4/client-registrar.cpp
@@ -30,6 +30,7 @@
 
 #include <TelepathyQt4/Account>
 #include <TelepathyQt4/Channel>
+#include <TelepathyQt4/ChannelDispatchOperation>
 #include <TelepathyQt4/ChannelRequest>
 #include <TelepathyQt4/Connection>
 #include <TelepathyQt4/MethodInvocationContext>
@@ -167,6 +168,7 @@ void ClientApproverAdaptor::AddDispatchOperation(const Tp::ChannelDetailsList &c
 {
     QDBusObjectPath connectionPath = qdbus_cast<QDBusObjectPath>(
             properties.value("Connection"));
+    debug() << "addDispatchOperation: connection:" << connectionPath.path();
     QString connectionBusName = connectionPath.path().mid(1).replace('/', '.');
     ConnectionPtr connection = Connection::create(mBus, connectionBusName,
             connectionPath.path());
@@ -179,12 +181,16 @@ void ClientApproverAdaptor::AddDispatchOperation(const Tp::ChannelDetailsList &c
         channels.append(channel);
     }
 
+    ChannelDispatchOperationPtr channelDispatchOperation =
+        ChannelDispatchOperation::create(dispatchOperationPath.path(),
+                properties);
+
     MethodInvocationContextPtr<> context =
         MethodInvocationContextPtr<>(
                 new MethodInvocationContext<>(mBus, message));
 
     mClient->addDispatchOperation(context, channels,
-            dispatchOperationPath.path(), properties);
+            channelDispatchOperation);
 }
 
 QHash<QPair<QString, QString>, QList<ClientHandlerAdaptor *> > ClientHandlerAdaptor::mAdaptorsForConnection;
diff --git a/tests/dbus/client.cpp b/tests/dbus/client.cpp
index de1860b..b789e2a 100644
--- a/tests/dbus/client.cpp
+++ b/tests/dbus/client.cpp
@@ -12,6 +12,7 @@
 #include <TelepathyQt4/AbstractClientHandler>
 #include <TelepathyQt4/AbstractClientObserver>
 #include <TelepathyQt4/Channel>
+#include <TelepathyQt4/ChannelDispatchOperation>
 #include <TelepathyQt4/ChannelRequest>
 #include <TelepathyQt4/ClientHandlerInterface>
 #include <TelepathyQt4/ClientInterfaceRequestsInterface>
@@ -159,14 +160,14 @@ public:
             const AccountPtr &account,
             const ConnectionPtr &connection,
             const QList<ChannelPtr> &channels,
-            const QString &dispatchOperationPath,
+            const ChannelDispatchOperationPtr &dispatchOperation,
             const QList<ChannelRequestPtr> &requestsSatisfied,
             const QVariantMap &observerInfo)
     {
         mObserveChannelsAccount = account;
         mObserveChannelsConnection = connection;
         mObserveChannelsChannels = channels;
-        mObserveChannelsDispathOperationPath = dispatchOperationPath;
+        mObserveChannelsDispatchOperation = dispatchOperation;
         mObserveChannelsRequestsSatisfied = requestsSatisfied;
         mObserveChannelsObserverInfo = observerInfo;
 
@@ -223,7 +224,7 @@ public:
     AccountPtr mObserveChannelsAccount;
     ConnectionPtr mObserveChannelsConnection;
     QList<ChannelPtr> mObserveChannelsChannels;
-    QString mObserveChannelsDispathOperationPath;
+    ChannelDispatchOperationPtr mObserveChannelsDispatchOperation;
     QList<ChannelRequestPtr> mObserveChannelsRequestsSatisfied;
     QVariantMap mObserveChannelsObserverInfo;
 
@@ -532,7 +533,7 @@ void TestClient::testObserveChannelsCommon(const AbstractClientPtr &clientObject
     QCOMPARE(client->mObserveChannelsAccount->objectPath(), mAccount->objectPath());
     QCOMPARE(client->mObserveChannelsConnection->objectPath(), mConn->objectPath());
     QCOMPARE(client->mObserveChannelsChannels.first()->objectPath(), mText1ChanPath);
-    QCOMPARE(client->mObserveChannelsDispathOperationPath, QString("/"));
+    QCOMPARE(client->mObserveChannelsDispatchOperation->objectPath(), QString("/"));
     QCOMPARE(client->mObserveChannelsRequestsSatisfied.first()->objectPath(), mChannelRequestPath);
 }
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list