[telepathy-qt4/master] ClientRegistrar: Added AbstractClient the base class for all Clients.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Mon May 11 11:17:52 PDT 2009


---
 TelepathyQt4/abstract-client.cpp         |    8 ++++++++
 TelepathyQt4/abstract-client.h           |   11 ++++++++++-
 TelepathyQt4/client-object.cpp           |   16 ++++++++--------
 TelepathyQt4/client-object.h             |    6 +++---
 TelepathyQt4/client-registrar-internal.h |   16 ++++++++--------
 TelepathyQt4/client-registrar.cpp        |   11 ++++++-----
 TelepathyQt4/types.h                     |    2 +-
 tests/dbus/client-handler.cpp            |   10 +++++-----
 8 files changed, 49 insertions(+), 31 deletions(-)

diff --git a/TelepathyQt4/abstract-client.cpp b/TelepathyQt4/abstract-client.cpp
index 59a4f02..5699bf0 100644
--- a/TelepathyQt4/abstract-client.cpp
+++ b/TelepathyQt4/abstract-client.cpp
@@ -28,6 +28,14 @@
 namespace Tp
 {
 
+AbstractClient::AbstractClient()
+{
+}
+
+AbstractClient::~AbstractClient()
+{
+}
+
 struct AbstractClientHandler::Private
 {
     ChannelClassList channelFilter;
diff --git a/TelepathyQt4/abstract-client.h b/TelepathyQt4/abstract-client.h
index 52f2359..2f76a6d 100644
--- a/TelepathyQt4/abstract-client.h
+++ b/TelepathyQt4/abstract-client.h
@@ -39,7 +39,16 @@ namespace Tp
 
 class PendingClientOperation;
 
-class AbstractClientHandler : public RefCounted
+class AbstractClient : public RefCounted
+{
+    Q_DISABLE_COPY(AbstractClient)
+
+public:
+    AbstractClient();
+    virtual ~AbstractClient();
+};
+
+class AbstractClientHandler : public virtual AbstractClient
 {
     Q_DISABLE_COPY(AbstractClientHandler)
 
diff --git a/TelepathyQt4/client-object.cpp b/TelepathyQt4/client-object.cpp
index f44a595..bc88ed1 100644
--- a/TelepathyQt4/client-object.cpp
+++ b/TelepathyQt4/client-object.cpp
@@ -28,21 +28,21 @@ namespace Tp
 
 struct ClientObject::Private
 {
-    AbstractClientHandlerPtr clientHandler;
+    AbstractClientPtr client;
 };
 
-ClientObjectPtr ClientObject::create(const AbstractClientHandlerPtr &clientHandler)
+ClientObjectPtr ClientObject::create(const AbstractClientPtr &client)
 {
-    if (!clientHandler) {
+    if (!client) {
         return ClientObjectPtr();
     }
-    return ClientObjectPtr(new ClientObject(clientHandler));
+    return ClientObjectPtr(new ClientObject(client));
 }
 
-ClientObject::ClientObject(const AbstractClientHandlerPtr &clientHandler)
+ClientObject::ClientObject(const AbstractClientPtr &client)
     : mPriv(new Private)
 {
-    mPriv->clientHandler = clientHandler;
+    mPriv->client = client;
 }
 
 ClientObject::~ClientObject()
@@ -50,9 +50,9 @@ ClientObject::~ClientObject()
     delete mPriv;
 }
 
-AbstractClientHandlerPtr ClientObject::clientHandler() const
+AbstractClientPtr ClientObject::client() const
 {
-    return mPriv->clientHandler;
+    return mPriv->client;
 }
 
 } // Tp
diff --git a/TelepathyQt4/client-object.h b/TelepathyQt4/client-object.h
index 8791d6a..87a9938 100644
--- a/TelepathyQt4/client-object.h
+++ b/TelepathyQt4/client-object.h
@@ -39,13 +39,13 @@ class ClientObject : public QObject, public RefCounted
     Q_DISABLE_COPY(ClientObject)
 
 public:
-    static ClientObjectPtr create(const AbstractClientHandlerPtr &clientHandler);
+    static ClientObjectPtr create(const AbstractClientPtr &clientHandler);
     ~ClientObject();
 
-    AbstractClientHandlerPtr clientHandler() const;
+    AbstractClientPtr client() const;
 
 private:
-    ClientObject(const AbstractClientHandlerPtr &clientHandler);
+    ClientObject(const AbstractClientPtr &clientHandler);
 
     struct Private;
     friend struct Private;
diff --git a/TelepathyQt4/client-registrar-internal.h b/TelepathyQt4/client-registrar-internal.h
index 824b6b0..c394bea 100644
--- a/TelepathyQt4/client-registrar-internal.h
+++ b/TelepathyQt4/client-registrar-internal.h
@@ -88,7 +88,7 @@ class ClientHandlerAdaptor : public QDBusAbstractAdaptor
 public:
     ClientHandlerAdaptor(
             const QDBusConnection &bus,
-            const AbstractClientHandlerPtr &client,
+            AbstractClientHandler *client,
             QObject *parent);
     virtual ~ClientHandlerAdaptor();
 
@@ -140,7 +140,7 @@ private:
     class HandleChannelsCall;
 
     QDBusConnection mBus;
-    AbstractClientHandlerPtr mClient;
+    AbstractClientHandler *mClient;
     QHash<PendingClientOperation *, HandleChannelsCall *> mOperations;
     QQueue<HandleChannelsCall*> mHandleChannelsQueue;
     bool mProcessingHandleChannels;
@@ -154,7 +154,7 @@ class ClientHandlerAdaptor::HandleChannelsCall : public QObject
     Q_OBJECT
 
 public:
-    HandleChannelsCall(const AbstractClientHandlerPtr &client,
+    HandleChannelsCall(AbstractClientHandler *client,
             PendingClientOperation *op,
             const QDBusObjectPath &account,
             const QDBusObjectPath &connection,
@@ -183,7 +183,7 @@ private:
     void setFinishedWithError(const QString &errorName,
             const QString &errorMessage);
 
-    AbstractClientHandlerPtr mClient;
+    AbstractClientHandler *mClient;
     PendingClientOperation *mOperation;
     QDBusObjectPath mAccountPath;
     QDBusObjectPath mConnectionPath;
@@ -219,7 +219,7 @@ class ClientHandlerRequestsAdaptor : public QDBusAbstractAdaptor
 
 public:
     ClientHandlerRequestsAdaptor(const QDBusConnection &bus,
-            const AbstractClientHandlerPtr &client,
+            AbstractClientHandler *client,
             QObject *parent);
     virtual ~ClientHandlerRequestsAdaptor();
 
@@ -240,7 +240,7 @@ private:
     class AddRequestCall;
 
     QDBusConnection mBus;
-    AbstractClientHandlerPtr mClient;
+    AbstractClientHandler *mClient;
     QQueue<AddRequestCall*> mAddRequestQueue;
     bool mProcessingAddRequest;
 };
@@ -250,7 +250,7 @@ class ClientHandlerRequestsAdaptor::AddRequestCall : public QObject
     Q_OBJECT
 
 public:
-    AddRequestCall(const AbstractClientHandlerPtr &client,
+    AddRequestCall(AbstractClientHandler *client,
             const QDBusObjectPath &request,
             const QVariantMap &requestProperties,
             const QDBusConnection &bus,
@@ -266,7 +266,7 @@ private Q_SLOTS:
     void onChannelRequestReady(Tp::PendingOperation *op);
 
 private:
-    AbstractClientHandlerPtr mClient;
+    AbstractClientHandler *mClient;
     QDBusObjectPath mRequestPath;
     QVariantMap mRequestProperties;
     QDBusConnection mBus;
diff --git a/TelepathyQt4/client-registrar.cpp b/TelepathyQt4/client-registrar.cpp
index 64d8497..4888c73 100644
--- a/TelepathyQt4/client-registrar.cpp
+++ b/TelepathyQt4/client-registrar.cpp
@@ -52,7 +52,7 @@ ClientAdaptor::~ClientAdaptor()
 QHash<QString, QList<ClientHandlerAdaptor *> > ClientHandlerAdaptor::mAdaptorsForConnection;
 
 ClientHandlerAdaptor::ClientHandlerAdaptor(const QDBusConnection &bus,
-        const AbstractClientHandlerPtr &client,
+        AbstractClientHandler *client,
         QObject *parent)
     : QDBusAbstractAdaptor(parent),
       mBus(bus),
@@ -148,7 +148,7 @@ void ClientHandlerAdaptor::processHandleChannelsQueue()
 }
 
 ClientHandlerAdaptor::HandleChannelsCall::HandleChannelsCall(
-        const AbstractClientHandlerPtr &client,
+        AbstractClientHandler *client,
         PendingClientOperation *op,
         const QDBusObjectPath &account,
         const QDBusObjectPath &connection,
@@ -266,7 +266,7 @@ void ClientHandlerAdaptor::HandleChannelsCall::setFinishedWithError(const QStrin
 
 ClientHandlerRequestsAdaptor::ClientHandlerRequestsAdaptor(
         const QDBusConnection &bus,
-        const AbstractClientHandlerPtr &client,
+        AbstractClientHandler *client,
         QObject *parent)
     : QDBusAbstractAdaptor(parent),
       mBus(bus),
@@ -326,7 +326,7 @@ void ClientHandlerRequestsAdaptor::onAddRequestCallFinished()
 }
 
 ClientHandlerRequestsAdaptor::AddRequestCall::AddRequestCall(
-        const AbstractClientHandlerPtr &client,
+        AbstractClientHandler *client,
         const QDBusObjectPath &request,
         const QVariantMap &requestProperties,
         const QDBusConnection &bus,
@@ -465,7 +465,8 @@ bool ClientRegistrar::registerClient(const ClientObjectPtr &client,
 
     ClientHandlerAdaptor *clientHandlerAdaptor = 0;
     ClientHandlerRequestsAdaptor *clientHandlerRequestsAdaptor = 0;
-    AbstractClientHandlerPtr handler = client->clientHandler();
+    AbstractClientHandler *handler =
+        dynamic_cast<AbstractClientHandler*>(client->client().data());
 
     QList<QDBusAbstractAdaptor *> &adaptors = mPriv->adaptorsForClient[client];
     if (handler) {
diff --git a/TelepathyQt4/types.h b/TelepathyQt4/types.h
index 8238d59..8ed82fa 100644
--- a/TelepathyQt4/types.h
+++ b/TelepathyQt4/types.h
@@ -48,7 +48,7 @@ class MediaStream;
 class StreamedMediaChannel;
 class TextChannel;
 
-typedef SharedPtr<AbstractClientHandler> AbstractClientHandlerPtr;
+typedef SharedPtr<AbstractClientHandler> AbstractClientPtr;
 typedef SharedPtr<Account> AccountPtr;
 typedef SharedPtr<AccountManager> AccountManagerPtr;
 typedef SharedPtr<Channel> ChannelPtr;
diff --git a/tests/dbus/client-handler.cpp b/tests/dbus/client-handler.cpp
index d8cf138..a8dda4c 100644
--- a/tests/dbus/client-handler.cpp
+++ b/tests/dbus/client-handler.cpp
@@ -132,11 +132,11 @@ class MyHandler : public QObject, public AbstractClientHandler
     Q_OBJECT
 
 public:
-    static AbstractClientHandlerPtr create(const ChannelClassList &channelFilter,
+    static AbstractClientPtr create(const ChannelClassList &channelFilter,
             bool bypassApproval = false,
             bool wantsRequestNotification = false)
     {
-        return AbstractClientHandlerPtr(new MyHandler(channelFilter,
+        return AbstractClientPtr(new MyHandler(channelFilter,
                     bypassApproval, wantsRequestNotification));
     }
 
@@ -448,7 +448,7 @@ void TestClientHandler::testRequests()
     ClientInterfaceRequestsInterface *handlerRequestsIface = new ClientInterfaceRequestsInterface(bus,
             mClientObject1BusName, mClientObject1Path, this);
 
-    MyHandler *handler = dynamic_cast<MyHandler*>(mClientObject1->clientHandler().data());
+    MyHandler *handler = dynamic_cast<MyHandler*>(mClientObject1->client().data());
     connect(handler,
             SIGNAL(requestAdded(const Tp::ChannelRequestPtr &)),
             SLOT(expectSignalEmission()));
@@ -484,7 +484,7 @@ void TestClientHandler::testHandleChannels()
     // object 1
     ClientHandlerInterface *handler1Iface = new ClientHandlerInterface(bus,
             mClientObject1BusName, mClientObject1Path, this);
-    MyHandler *handler1 = dynamic_cast<MyHandler*>(mClientObject1->clientHandler().data());
+    MyHandler *handler1 = dynamic_cast<MyHandler*>(mClientObject1->client().data());
     connect(handler1,
             SIGNAL(handleChannelsFinished()),
             SLOT(expectSignalEmission()));
@@ -511,7 +511,7 @@ void TestClientHandler::testHandleChannels()
     // object 2
     ClientHandlerInterface *handler2Iface = new ClientHandlerInterface(bus,
             mClientObject2BusName, mClientObject2Path, this);
-    MyHandler *handler2 = dynamic_cast<MyHandler*>(mClientObject2->clientHandler().data());
+    MyHandler *handler2 = dynamic_cast<MyHandler*>(mClientObject2->client().data());
     connect(handler2,
             SIGNAL(handleChannelsFinished()),
             SLOT(expectSignalEmission()));
-- 
1.5.6.5




More information about the telepathy-commits mailing list