source: psi/trunk/cutestuff/util/safedelete.h@ 12

Last change on this file since 12 was 2, checked in by dmik, 19 years ago

Imported original Psi 0.10 sources from Affinix

File size: 866 bytes
Line 
1#ifndef SAFEDELETE_H
2#define SAFEDELETE_H
3
4#include<qobject.h>
5#include<qobjectlist.h>
6
7class SafeDelete;
8class SafeDeleteLock
9{
10public:
11 SafeDeleteLock(SafeDelete *sd);
12 ~SafeDeleteLock();
13
14private:
15 SafeDelete *_sd;
16 bool own;
17 friend class SafeDelete;
18 void dying();
19};
20
21class SafeDelete
22{
23public:
24 SafeDelete();
25 ~SafeDelete();
26
27 void deleteLater(QObject *o);
28
29 // same as QObject::deleteLater()
30 static void deleteSingle(QObject *o);
31
32private:
33 QObjectList list;
34 void deleteAll();
35
36 friend class SafeDeleteLock;
37 SafeDeleteLock *lock;
38 void unlock();
39};
40
41class SafeDeleteLater : public QObject
42{
43 Q_OBJECT
44public:
45 static SafeDeleteLater *ensureExists();
46 void deleteItLater(QObject *o);
47
48private slots:
49 void explode();
50
51private:
52 SafeDeleteLater();
53 ~SafeDeleteLater();
54
55 QObjectList list;
56 friend class SafeDelete;
57 static SafeDeleteLater *self;
58};
59
60#endif
Note: See TracBrowser for help on using the repository browser.