[Telepathy-commits] [telepathy-qt4/master] ConnectionManager: Added features param on isReady/becomeReady.
Andre Moreira Magalhaes (andrunko)
andre.magalhaes at collabora.co.uk
Fri Feb 13 11:23:33 PST 2009
---
TelepathyQt4/Client/connection-manager-internal.h | 1 +
TelepathyQt4/Client/connection-manager.cpp | 12 +++++++-----
TelepathyQt4/Client/connection-manager.h | 9 +++++++--
3 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/TelepathyQt4/Client/connection-manager-internal.h b/TelepathyQt4/Client/connection-manager-internal.h
index d1a5aaa..f640013 100644
--- a/TelepathyQt4/Client/connection-manager-internal.h
+++ b/TelepathyQt4/Client/connection-manager-internal.h
@@ -59,6 +59,7 @@ struct ConnectionManager::Private
QStringList interfaces;
ProtocolInfoList protocols;
PendingReady *pendingReady;
+ ConnectionManager::Features features;
};
class ConnectionManager::Private::PendingReady : public PendingOperation
diff --git a/TelepathyQt4/Client/connection-manager.cpp b/TelepathyQt4/Client/connection-manager.cpp
index 153511b..bc1f26c 100644
--- a/TelepathyQt4/Client/connection-manager.cpp
+++ b/TelepathyQt4/Client/connection-manager.cpp
@@ -291,7 +291,8 @@ ConnectionManager::Private::Private(const QString &name, ConnectionManager *pare
parent->busName(), parent->objectPath(), parent)),
name(name),
ready(false),
- pendingReady(0)
+ pendingReady(0),
+ features(0)
{
debug() << "Creating new ConnectionManager:" << parent->busName();
}
@@ -466,9 +467,10 @@ PendingConnection *ConnectionManager::requestConnection(const QString &protocol,
*
* \return \c true if the object has finished initial setup.
*/
-bool ConnectionManager::isReady() const
+bool ConnectionManager::isReady(Features features) const
{
- return mPriv->ready;
+ return mPriv->ready
+ && ((mPriv->features & features) == features);
}
/**
@@ -479,14 +481,14 @@ bool ConnectionManager::isReady() const
* \return A PendingOperation which will emit PendingOperation::finished
* when this object has finished or failed its initial setup.
*/
-PendingOperation *ConnectionManager::becomeReady()
+PendingOperation *ConnectionManager::becomeReady(Features features)
{
if (!isValid()) {
return new PendingFailure(this, TELEPATHY_ERROR_NOT_AVAILABLE,
"ConnectionManager is invalid");
}
- if (mPriv->ready) {
+ if (isReady(features)) {
return new PendingSuccess(this);
}
diff --git a/TelepathyQt4/Client/connection-manager.h b/TelepathyQt4/Client/connection-manager.h
index cb68b3e..c4b3302 100644
--- a/TelepathyQt4/Client/connection-manager.h
+++ b/TelepathyQt4/Client/connection-manager.h
@@ -118,6 +118,11 @@ class ConnectionManager : public StatelessDBusProxy,
Q_OBJECT
public:
+ enum Feature {
+ _Padding = 0xFFFFFFFF
+ };
+ Q_DECLARE_FLAGS(Features, Feature)
+
ConnectionManager(const QString &name, QObject *parent = 0);
ConnectionManager(const QDBusConnection &bus,
const QString &name, QObject *parent = 0);
@@ -139,9 +144,9 @@ public:
return OptionalInterfaceFactory<ConnectionManager>::interface<DBus::PropertiesInterface>();
}
- bool isReady() const;
+ bool isReady(Features features = 0) const;
- PendingOperation *becomeReady();
+ PendingOperation *becomeReady(Features features = 0);
static PendingStringList *listNames(const QDBusConnection &bus = QDBusConnection::sessionBus());
--
1.5.6.5
More information about the telepathy-commits
mailing list