25 #include <QWaitCondition> 29 class Database :
public QThread
32 explicit Database(QObject *parent = 0);
35 static Database& singleton(QWidget* parent = 0);
37 bool upgradeVersion1();
38 bool putThumbnail(
const QString& hash,
const QImage& image);
39 QImage getThumbnail(
const QString& hash);
42 void commitTransaction();
48 void doJob(DatabaseJob * job);
49 void submitAndWaitForJob(DatabaseJob * job);
50 void deleteOldThumbnails();
53 QList<DatabaseJob*> m_jobs;
55 QWaitCondition m_waitForFinished;
56 QWaitCondition m_waitForNewJob;
57 QTimer * m_commitTimer;
60 #define DB Database::singleton()