[telepathy-qt4/master] ClientRegistrar: Added ClientObserverAdaptor skeleton class.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Fri May 15 07:14:30 PDT 2009


---
 TelepathyQt4/client-registrar-internal.h |   47 ++++++++++++++++++++++++++++++
 TelepathyQt4/client-registrar.cpp        |   23 ++++++++++++++
 2 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/TelepathyQt4/client-registrar-internal.h b/TelepathyQt4/client-registrar-internal.h
index 8ef6613..6021daa 100644
--- a/TelepathyQt4/client-registrar-internal.h
+++ b/TelepathyQt4/client-registrar-internal.h
@@ -60,6 +60,53 @@ private:
     QStringList mInterfaces;
 };
 
+class ClientObserverAdaptor : public QDBusAbstractAdaptor
+{
+    Q_OBJECT
+    Q_CLASSINFO("D-Bus Interface", "org.freedesktop.Telepathy.Client.Observer")
+    Q_CLASSINFO("D-Bus Introspection", ""
+"  <interface name=\"org.freedesktop.Telepathy.Client.Handler\" >\n"
+"    <property name=\"ObserverChannelFilter\" type=\"aa{sv}\" access=\"read\" />\n"
+"    <method name=\"ObserveChannels\" >\n"
+"      <arg name=\"Account\" type=\"o\" direction=\"in\" />\n"
+"      <arg name=\"Connection\" type=\"o\" direction=\"in\" />\n"
+"      <arg name=\"Channels\" type=\"a(oa{sv})\" direction=\"in\" />\n"
+"      <arg name=\"Dispatch_Operation\" type=\"o\" direction=\"in\" />\n"
+"      <arg name=\"Requests_Satisfied\" type=\"ao\" direction=\"in\" />\n"
+"      <arg name=\"Observer_Info\" type=\"a{sv}\" direction=\"in\" />\n"
+"    </method>\n"
+"  </interface>\n"
+        "")
+
+    Q_PROPERTY(Tp::ChannelClassList ObserverChannelFilter READ ObserverChannelFilter)
+
+public:
+    ClientObserverAdaptor(
+            const QDBusConnection &bus,
+            AbstractClientObserver *client,
+            QObject *parent);
+    virtual ~ClientObserverAdaptor();
+
+public: // Properties
+    inline Tp::ChannelClassList ObserverChannelFilter() const
+    {
+        return mClient->observerChannelFilter();
+    }
+
+public Q_SLOTS: // Methods
+    void ObserveChannels(const QDBusObjectPath &account,
+            const QDBusObjectPath &connection,
+            const Tp::ChannelDetailsList &channels,
+            const QDBusObjectPath &dispatchOperation,
+            const Tp::ObjectPathList &requestsSatisfied,
+            const QVariantMap &observerInfo,
+            const QDBusMessage &message);
+
+private:
+    QDBusConnection mBus;
+    AbstractClientObserver *mClient;
+};
+
 class ClientHandlerAdaptor : public QDBusAbstractAdaptor
 {
     Q_OBJECT
diff --git a/TelepathyQt4/client-registrar.cpp b/TelepathyQt4/client-registrar.cpp
index 1f34180..5029bc9 100644
--- a/TelepathyQt4/client-registrar.cpp
+++ b/TelepathyQt4/client-registrar.cpp
@@ -90,6 +90,29 @@ ClientAdaptor::~ClientAdaptor()
 {
 }
 
+ClientObserverAdaptor::ClientObserverAdaptor(const QDBusConnection &bus,
+        AbstractClientObserver *client,
+        QObject *parent)
+    : QDBusAbstractAdaptor(parent),
+      mBus(bus),
+      mClient(client)
+{
+}
+
+ClientObserverAdaptor::~ClientObserverAdaptor()
+{
+}
+
+void ClientObserverAdaptor::ObserveChannels(const QDBusObjectPath &accountPath,
+        const QDBusObjectPath &connectionPath,
+        const Tp::ChannelDetailsList &channelDetailsList,
+        const QDBusObjectPath &dispatchOperationPath,
+        const Tp::ObjectPathList &requestsSatisfied,
+        const QVariantMap &observerInfo,
+        const QDBusMessage &message)
+{
+}
+
 QHash<QPair<QString, QString>, QList<ClientHandlerAdaptor *> > ClientHandlerAdaptor::mAdaptorsForConnection;
 
 ClientHandlerAdaptor::ClientHandlerAdaptor(const QDBusConnection &bus,
-- 
1.5.6.5




More information about the telepathy-commits mailing list