[telepathy-qt4/master] ClientRegistrar: Make Requests::AddRequest/RemoveRequest finish immediatelly.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Tue May 19 06:48:58 PDT 2009


---
 TelepathyQt4/abstract-client.cpp         |    2 +-
 TelepathyQt4/abstract-client.h           |    2 +-
 TelepathyQt4/client-registrar-internal.h |   10 +++++++---
 TelepathyQt4/client-registrar.cpp        |   14 ++++++++++----
 4 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/TelepathyQt4/abstract-client.cpp b/TelepathyQt4/abstract-client.cpp
index 72b9143..3eeea08 100644
--- a/TelepathyQt4/abstract-client.cpp
+++ b/TelepathyQt4/abstract-client.cpp
@@ -76,7 +76,7 @@ void AbstractClientHandler::addRequest(
 
 void AbstractClientHandler::removeRequest(
         const QDBusObjectPath &requestObjectPath,
-        const QString &error, const QString &message)
+        const QString &errorName, const QString &errorMessage)
 {
     // do nothing, subclasses that want to listen requests should reimplement
     // this method
diff --git a/TelepathyQt4/abstract-client.h b/TelepathyQt4/abstract-client.h
index b26e66d..91d3a88 100644
--- a/TelepathyQt4/abstract-client.h
+++ b/TelepathyQt4/abstract-client.h
@@ -75,7 +75,7 @@ public:
     virtual void addRequest(const QDBusObjectPath &requestObjectPath,
             const QVariantMap &requestProperties);
     virtual void removeRequest(const QDBusObjectPath &requestObjectPath,
-            const QString &error, const QString &message);
+            const QString &errorName, const QString &errorMessage);
 
 protected:
     AbstractClientHandler(const ChannelClassList &channelFilter,
diff --git a/TelepathyQt4/client-registrar-internal.h b/TelepathyQt4/client-registrar-internal.h
index 470193d..322c098 100644
--- a/TelepathyQt4/client-registrar-internal.h
+++ b/TelepathyQt4/client-registrar-internal.h
@@ -135,16 +135,20 @@ class ClientHandlerRequestsAdaptor : public QDBusAbstractAdaptor
         "")
 
 public:
-    ClientHandlerRequestsAdaptor(AbstractClientHandler *client);
+    ClientHandlerRequestsAdaptor(const QDBusConnection &bus,
+            AbstractClientHandler *client);
     virtual ~ClientHandlerRequestsAdaptor();
 
 public Q_SLOTS: // Methods
     void AddRequest(const QDBusObjectPath &request,
-            const QVariantMap &properties);
+            const QVariantMap &properties,
+            const QDBusMessage &message);
     void RemoveRequest(const QDBusObjectPath &request,
-            const QString &error, const QString &message);
+            const QString &errorName, const QString &errorMessage,
+            const QDBusMessage &message);
 
 private:
+    QDBusConnection mBus;
     AbstractClientHandler *mClient;
 };
 
diff --git a/TelepathyQt4/client-registrar.cpp b/TelepathyQt4/client-registrar.cpp
index 4023b86..263a6be 100644
--- a/TelepathyQt4/client-registrar.cpp
+++ b/TelepathyQt4/client-registrar.cpp
@@ -71,8 +71,10 @@ void ClientHandlerAdaptor::HandleChannels(const QDBusObjectPath &account,
 }
 
 ClientHandlerRequestsAdaptor::ClientHandlerRequestsAdaptor(
+        const QDBusConnection &bus,
         AbstractClientHandler *client)
     : QDBusAbstractAdaptor(client),
+      mBus(bus),
       mClient(client)
 {
 }
@@ -83,16 +85,20 @@ ClientHandlerRequestsAdaptor::~ClientHandlerRequestsAdaptor()
 
 void ClientHandlerRequestsAdaptor::AddRequest(
         const QDBusObjectPath &request,
-        const QVariantMap &properties)
+        const QVariantMap &properties,
+        const QDBusMessage &message)
 {
+    mBus.send(message.createReply());
     mClient->addRequest(request, properties);
 }
 
 void ClientHandlerRequestsAdaptor::RemoveRequest(
         const QDBusObjectPath &request,
-        const QString &error, const QString &message)
+        const QString &errorName, const QString &errorMessage,
+        const QDBusMessage &message)
 {
-    mClient->removeRequest(request, error, message);
+    mBus.send(message.createReply());
+    mClient->removeRequest(request, errorName, errorMessage);
 }
 
 struct ClientRegistrar::Private
@@ -189,7 +195,7 @@ bool ClientRegistrar::registerClient(const AbstractClientPtr &client,
         if (handler->isListeningRequests()) {
             // export o.f.T.Client.Interface.Requests
             clientHandlerRequestsAdaptor =
-                new ClientHandlerRequestsAdaptor(handler);
+                new ClientHandlerRequestsAdaptor(mPriv->bus, handler);
             interfaces.append(
                     QLatin1String(
                         "org.freedesktop.Telepathy.Client.Interface.Requests"));
-- 
1.5.6.5




More information about the telepathy-commits mailing list