[Telepathy-commits] [telepathy-qt4/master] AbstractInterface: allow invalidation
Simon McVittie
simon.mcvittie at collabora.co.uk
Thu Jan 22 05:41:44 PST 2009
---
TelepathyQt4/Client/abstract-interface.cpp | 41 +++++++++++++++++++++++++++-
TelepathyQt4/Client/abstract-interface.h | 10 +++++++
2 files changed, 50 insertions(+), 1 deletions(-)
diff --git a/TelepathyQt4/Client/abstract-interface.cpp b/TelepathyQt4/Client/abstract-interface.cpp
index e541bca..8d62661 100644
--- a/TelepathyQt4/Client/abstract-interface.cpp
+++ b/TelepathyQt4/Client/abstract-interface.cpp
@@ -28,16 +28,55 @@ namespace Telepathy
namespace Client
{
+struct AbstractInterface::Private
+{
+ Private();
+ QString mError;
+ QString mMessage;
+};
+
+AbstractInterface::Private::Private()
+ : mError(), mMessage()
+{
+}
+
AbstractInterface::AbstractInterface(const QString &busName,
const QString &path, const char *interface,
const QDBusConnection &dbusConnection, QObject *parent)
: QDBusAbstractInterface(busName, path, interface, dbusConnection, parent),
- mPriv(0)
+ mPriv(new Private)
{
}
AbstractInterface::~AbstractInterface()
{
+ delete mPriv;
+}
+
+bool AbstractInterface::isValid() const
+{
+ return QDBusAbstractInterface::isValid() && mPriv->mError.isEmpty();
+}
+
+QString AbstractInterface::invalidationReason() const
+{
+ return mPriv->mError;
+}
+
+QString AbstractInterface::invalidationMessage() const
+{
+ return mPriv->mMessage;
+}
+
+void AbstractInterface::invalidate(Telepathy::Client::DBusProxy *proxy,
+ QString error, QString message)
+{
+ Q_ASSERT(!error.isEmpty());
+
+ if (mPriv->mError.isEmpty()) {
+ mPriv->mError = error;
+ mPriv->mMessage = message;
+ }
}
} // Client
diff --git a/TelepathyQt4/Client/abstract-interface.h b/TelepathyQt4/Client/abstract-interface.h
index de45eec..0102afb 100644
--- a/TelepathyQt4/Client/abstract-interface.h
+++ b/TelepathyQt4/Client/abstract-interface.h
@@ -32,6 +32,8 @@ namespace Telepathy
namespace Client
{
+class DBusProxy;
+
class AbstractInterface : public QDBusAbstractInterface
{
Q_OBJECT
@@ -39,6 +41,14 @@ class AbstractInterface : public QDBusAbstractInterface
public:
virtual ~AbstractInterface();
+ bool isValid() const;
+ QString invalidationReason() const;
+ QString invalidationMessage() const;
+
+public Q_SLOTS:
+ void invalidate(Telepathy::Client::DBusProxy *proxy, QString error,
+ QString message);
+
protected:
AbstractInterface(const QString &busName, const QString &path,
const char *interface, const QDBusConnection &connection,
--
1.5.6.5
More information about the Telepathy-commits
mailing list