00001 #ifndef STORABLEDATA_H
00002 #define STORABLEDATA_H
00003 
00004 #include <tools/global.h>
00005 
00006 #include <QObject>
00007 
00008 namespace domain
00009 {
00010 
00011 class TaskManagerData;
00012 
00021 class DOMAIN_EXPORT StorableData : public QObject
00022 {
00023         Q_OBJECT
00024 
00025         friend class TaskManagerData;
00026 
00027     public:
00028 
00029         unsigned id() const;
00030 
00031     public Q_SLOTS:
00032 
00039         virtual void notify();
00040 
00041     Q_SIGNALS:
00042 
00046         void dataChanged();
00047 
00048     protected:
00049 
00050         StorableData();
00051         virtual ~StorableData();
00052 
00058         void deleteDependentData();
00059 
00060     private:
00061 
00067         virtual QList<StorableData*> dependentData() const;
00068 };
00069 
00070 }
00071 
00072 #endif