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 {
00031
00032 class DataContainerPrivate;
00033
00045 class PLASMA_EXPORT DataContainer : public QObject
00046 {
00047 friend class DataEngine;
00048 friend class DataEnginePrivate;
00049 Q_OBJECT
00050
00051 public:
00052
00053
00058 explicit DataContainer(QObject* parent = 0);
00059 virtual ~DataContainer();
00060
00064 const DataEngine::Data data() const;
00065
00076 void setData(const QString& key, const QVariant& value);
00077
00081 void removeAllData();
00082
00086 bool visualizationIsConnected(QObject *visualization) const;
00087
00095 void connectVisualization(QObject* visualization, uint pollingInterval, Plasma::IntervalAlignment alignment);
00096
00097 public Q_SLOTS:
00098
00102 void disconnectVisualization(QObject* visualization);
00103
00104 Q_SIGNALS:
00109 void dataUpdated(const QString& source, const Plasma::DataEngine::Data& data);
00110
00114 void becameUnused(const QString& source);
00115
00120 void updateRequested(DataContainer *source);
00121 protected:
00126 void checkForUpdate();
00127
00131 uint timeSinceLastUpdate() const;
00132
00141 void setNeedsUpdate(bool update = true);
00142
00143 protected Q_SLOTS:
00149 void checkUsage();
00150
00151
00152 private:
00153 friend class SignalRelay;
00154 DataContainerPrivate* const d;
00155 };
00156
00157 }
00158
00159 #endif // multiple inclusion guard