[telepathy-qt4/master] ClientRegister: Change registerClient to receive the clientName and remove it from constructor.
Andre Moreira Magalhaes (andrunko)
andre.magalhaes at collabora.co.uk
Mon May 11 12:06:50 PDT 2009
Allow the same registrar (unique per dbus connection) to register clients with
different names.
---
TelepathyQt4/client-registrar.cpp | 32 +++++++++++---------------------
TelepathyQt4/client-registrar.h | 11 +++++------
tests/dbus/client-handler.cpp | 12 ++++++------
3 files changed, 22 insertions(+), 33 deletions(-)
diff --git a/TelepathyQt4/client-registrar.cpp b/TelepathyQt4/client-registrar.cpp
index 9b93852..93491b8 100644
--- a/TelepathyQt4/client-registrar.cpp
+++ b/TelepathyQt4/client-registrar.cpp
@@ -366,16 +366,12 @@ void ClientHandlerRequestsAdaptor::AddRequestCall::onChannelRequestReady(
struct ClientRegistrar::Private
{
- Private(const QDBusConnection &bus, const QString &clientName)
- : bus(bus), clientName(clientName)
+ Private(const QDBusConnection &bus)
+ : bus(bus)
{
- busName = QLatin1String("org.freedesktop.Telepathy.Client.");
- busName.append(clientName);
}
QDBusConnection bus;
- QString busName;
- QString clientName;
QHash<AbstractClientPtr, QString> clients;
QHash<AbstractClientPtr, QObject*> clientObjects;
QSet<QString> services;
@@ -383,25 +379,23 @@ struct ClientRegistrar::Private
QHash<QString, ClientRegistrar*> ClientRegistrar::registrarForConnection;
-ClientRegistrarPtr ClientRegistrar::create(const QString &clientName)
+ClientRegistrarPtr ClientRegistrar::create()
{
QDBusConnection bus = QDBusConnection::sessionBus();
- return create(bus, clientName);
+ return create(bus);
}
-ClientRegistrarPtr ClientRegistrar::create(const QDBusConnection &bus,
- const QString &clientName)
+ClientRegistrarPtr ClientRegistrar::create(const QDBusConnection &bus)
{
if (registrarForConnection.contains(bus.baseService())) {
return ClientRegistrarPtr(
registrarForConnection.value(bus.baseService()));
}
- return ClientRegistrarPtr(new ClientRegistrar(bus, clientName));
+ return ClientRegistrarPtr(new ClientRegistrar(bus));
}
-ClientRegistrar::ClientRegistrar(const QDBusConnection &bus,
- const QString &clientName)
- : mPriv(new Private(bus, clientName))
+ClientRegistrar::ClientRegistrar(const QDBusConnection &bus)
+ : mPriv(new Private(bus))
{
registrarForConnection.insert(bus.baseService(), this);
}
@@ -418,18 +412,13 @@ QDBusConnection ClientRegistrar::dbusConnection() const
return mPriv->bus;
}
-QString ClientRegistrar::clientName() const
-{
- return mPriv->clientName;
-}
-
QList<AbstractClientPtr> ClientRegistrar::registeredClients() const
{
return mPriv->clients.keys();
}
bool ClientRegistrar::registerClient(const AbstractClientPtr &client,
- bool unique)
+ const QString &clientName, bool unique)
{
if (!client) {
warning() << "Unable to register a null client";
@@ -441,7 +430,8 @@ bool ClientRegistrar::registerClient(const AbstractClientPtr &client,
return true;
}
- QString busName(mPriv->busName);
+ QString busName = QLatin1String("org.freedesktop.Telepathy.Client.");
+ busName.append(clientName);
if (unique) {
// o.f.T.Client.<unique_bus_name>_<pointer> should be enough to identify
// an unique identifier
diff --git a/TelepathyQt4/client-registrar.h b/TelepathyQt4/client-registrar.h
index 1f77b15..cb1ef62 100644
--- a/TelepathyQt4/client-registrar.h
+++ b/TelepathyQt4/client-registrar.h
@@ -42,21 +42,20 @@ class ClientRegistrar : public QObject, public RefCounted
Q_DISABLE_COPY(ClientRegistrar)
public:
- static ClientRegistrarPtr create(const QString &clientName);
- static ClientRegistrarPtr create(const QDBusConnection &bus,
- const QString &clientName);
+ static ClientRegistrarPtr create();
+ static ClientRegistrarPtr create(const QDBusConnection &bus);
virtual ~ClientRegistrar();
QDBusConnection dbusConnection() const;
- QString clientName() const;
QList<AbstractClientPtr> registeredClients() const;
- bool registerClient(const AbstractClientPtr &client, bool unique = false);
+ bool registerClient(const AbstractClientPtr &client,
+ const QString &clientName, bool unique = false);
bool unregisterClient(const AbstractClientPtr &client);
void unregisterClients();
private:
- ClientRegistrar(const QDBusConnection &bus, const QString &clientName);
+ ClientRegistrar(const QDBusConnection &bus);
struct Private;
friend struct Private;
diff --git a/tests/dbus/client-handler.cpp b/tests/dbus/client-handler.cpp
index e00f631..4783e61 100644
--- a/tests/dbus/client-handler.cpp
+++ b/tests/dbus/client-handler.cpp
@@ -369,7 +369,7 @@ void TestClientHandler::initTestCase()
tp_handle_unref(mContactRepo, handle);
- mClientRegistrar = ClientRegistrar::create("foo");
+ mClientRegistrar = ClientRegistrar::create();
QDBusConnection bus = mClientRegistrar->dbusConnection();
mChannelRequestBusName = "org.freedesktop.Telepathy.ChannelDispatcher";
@@ -394,7 +394,7 @@ void TestClientHandler::init()
void TestClientHandler::testRegister()
{
// invalid client
- QVERIFY(!mClientRegistrar->registerClient(AbstractClientPtr()));
+ QVERIFY(!mClientRegistrar->registerClient(AbstractClientPtr(), "foo"));
ChannelClassList filters;
QMap<QString, QDBusVariant> filter;
@@ -404,11 +404,11 @@ void TestClientHandler::testRegister()
QDBusVariant(Tp::HandleTypeContact));
filters.append(filter);
mClientObject1 = MyHandler::create(filters, false, true);
- QVERIFY(mClientRegistrar->registerClient(mClientObject1));
+ QVERIFY(mClientRegistrar->registerClient(mClientObject1, "foo"));
QVERIFY(mClientRegistrar->registeredClients().contains(mClientObject1));
// no op - client already registered
- QVERIFY(mClientRegistrar->registerClient(mClientObject1));
+ QVERIFY(mClientRegistrar->registerClient(mClientObject1, "foo"));
filters.clear();
filter.clear();
@@ -418,11 +418,11 @@ void TestClientHandler::testRegister()
QDBusVariant(Tp::HandleTypeContact));
filters.append(filter);
mClientObject2 = MyHandler::create(filters, true, true);
- QVERIFY(mClientRegistrar->registerClient(mClientObject2, true));
+ QVERIFY(mClientRegistrar->registerClient(mClientObject2, "foo", true));
QVERIFY(mClientRegistrar->registeredClients().contains(mClientObject2));
// no op - client already registered
- QVERIFY(mClientRegistrar->registerClient(mClientObject2, true));
+ QVERIFY(mClientRegistrar->registerClient(mClientObject2, "foo", true));
QDBusConnection bus = mClientRegistrar->dbusConnection();
QDBusConnectionInterface *busIface = bus.interface();
--
1.5.6.5
More information about the telepathy-commits
mailing list