24 #include <QWaitCondition> 29 class Worker :
public QObject
34 void submitAndWaitForJob(DatabaseJob * job);
45 void commitTransaction();
48 bool upgradeVersion1();
49 void doJob(DatabaseJob * job);
50 void deleteOldThumbnails();
52 QList<DatabaseJob*> m_jobs;
54 QWaitCondition m_waitForFinished;
55 QWaitCondition m_waitForNewJob;
56 QTimer* m_commitTimer {
nullptr};
60 class Database :
public QObject
63 explicit Database(QObject *parent = 0);
66 static Database& singleton(QObject *parent = 0);
68 bool putThumbnail(
const QString& hash,
const QImage& image);
69 QImage getThumbnail(
const QString& hash);
70 bool isShutdown()
const;
71 bool isFailing()
const {
return m_isFailing; }
78 void onOpened(
bool success) { m_isOpened = success; }
79 void onFailing(
bool failing) { m_isFailing = failing; }
84 bool m_isFailing {
false};
85 bool m_isOpened {
false};
88 #define DB Database::singleton()