24 #include <QWaitCondition> 28 class Database :
public QThread
31 explicit Database(QObject *parent = 0);
34 static Database& singleton(QWidget* parent = 0);
36 bool upgradeVersion1();
37 bool putThumbnail(
const QString& hash,
const QImage& image);
38 QImage getThumbnail(
const QString& hash);
39 bool isShutdown()
const;
40 bool isFailing()
const {
return m_isFailing; }
43 void commitTransaction();
49 void doJob(DatabaseJob * job);
50 void submitAndWaitForJob(DatabaseJob * job);
51 void deleteOldThumbnails();
54 QList<DatabaseJob*> m_jobs;
56 QWaitCondition m_waitForFinished;
57 QWaitCondition m_waitForNewJob;
58 QTimer * m_commitTimer;
62 #define DB Database::singleton()