[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