00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef PROPERTY_H
00023 #define PROPERTY_H
00024
00025 #include <QObject>
00026 #include <QString>
00027 #include <QStringList>
00028 #include <QDBusConnection>
00029 #include <QHash>
00030 #include <QVariant>
00031
00032 namespace ContextProvider {
00033
00034 class Service;
00035
00036 class PropertyPrivate;
00037 class ServiceBackend;
00038
00039 class Property : public QObject
00040 {
00041 Q_OBJECT
00042
00043 public:
00044 explicit Property(Service &service, const QString &key, QObject *parent = 0);
00045 explicit Property(const QString &key, QObject *parent = 0);
00046 virtual ~Property();
00047
00048 QString key() const;
00049 bool isSet() const;
00050
00051 void setValue(const QVariant &v);
00052 QVariant value();
00053 void unsetValue();
00054
00055 private:
00056 PropertyPrivate *priv;
00057 void init(ServiceBackend *serviceBackend, const QString &key);
00058
00059 signals:
00063 void firstSubscriberAppeared(const QString &key);
00064
00069 void lastSubscriberDisappeared(const QString &key);
00070 };
00071
00072 }
00073
00074 #endif