libplasma
datacontainer.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PLASMA_DATACONTAINER_H
00021 #define PLASMA_DATACONTAINER_H
00022
00023 #include <QtCore/QHash>
00024 #include <QtCore/QObject>
00025
00026 #include <plasma/plasma_export.h>
00027 #include <plasma/dataengine.h>
00028
00029 namespace Plasma
00030 {
00042 class PLASMA_EXPORT DataContainer : public QObject
00043 {
00044 Q_OBJECT
00045
00046 public:
00047
00048
00053 explicit DataContainer(QObject* parent = 0);
00054 virtual ~DataContainer();
00055
00059 const DataEngine::Data data() const;
00060
00071 void setData(const QString& key, const QVariant& value);
00072
00076 void clearData();
00077
00082 void checkForUpdate();
00083
00087 int timeSinceLastUpdate() const;
00088
00092 bool hasUpdates() const;
00093
00102 void setNeedsUpdate(bool update = true);
00103
00104 public Q_SLOTS:
00110 void checkUsage();
00111
00119 void connectVisualization(QObject* visualization, uint updateInterval, Plasma::IntervalAlignment alignment);
00120
00124 void disconnectVisualization(QObject* visualization);
00125
00126 Q_SIGNALS:
00131 void dataUpdated(const QString& source, const Plasma::DataEngine::Data& data);
00132
00136 void unused(const QString& source);
00137
00142 void requestUpdate(DataContainer *source);
00143
00144 private:
00145 friend class SignalRelay;
00146 class Private;
00147 Private* const d;
00148 };
00149
00150 }
00151
00152 #endif // multiple inclusion guard