00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SUBSCRIBERINTERFACE_H
00023 #define SUBSCRIBERINTERFACE_H
00024
00025 #include <QObject>
00026 #include <QMap>
00027 #include <QString>
00028 #include <QStringList>
00029 #include <QDBusAbstractInterface>
00030
00031 class QDBusConnection;
00032 class QDBusPendingCallWatcher;
00033
00034 namespace ContextSubscriber {
00035
00036 class SubscriberInterface : public QDBusAbstractInterface
00037 {
00038 Q_OBJECT
00039
00040 public:
00041 SubscriberInterface(const QDBusConnection connection, const QString& busName,
00042 const QString& objectPath, QObject* parent = 0);
00043
00044 void subscribe(QSet<QString> keys);
00045 void unsubscribe(QSet<QString> keys);
00046
00047 Q_SIGNALS:
00048 void valuesChanged(QMap<QString, QVariant> values);
00049 void subscribeFinished(QList<QString> keys);
00050 void subscribeFailed(QList<QString> keys, QString error);
00051 void Changed(const QMap<QString, QVariant> &values, const QStringList &unknownKeys);
00052
00053 private Q_SLOTS:
00054 void onSubscribeFinished(QDBusPendingCallWatcher* watcher);
00055 void onChanged(const QMap<QString, QVariant> &values, const QStringList &unknownKeys);
00056
00057 private:
00058 SubscriberInterface(const SubscriberInterface& other);
00059 SubscriberInterface& operator=(const SubscriberInterface& other);
00060 QMap<QString, QVariant>& mergeNullsWithMap(QMap<QString, QVariant> &map, QStringList nulls) const;
00061
00062 protected:
00063 void connectNotify(const char *signal);
00064 void disconnectNotify(const char *signal);
00065
00066 static const char* interfaceName;
00067 };
00068 }
00069 #endif