#ifndef DATABASE_H #define DATABASE_H #define STORE_DELAY 20 #include #include #include #include #include #include class Database : public QObject { Q_OBJECT public: Database(QSettings *config, QObject *parent); ~Database(void); inline bool passive(void) { return m_passive; } inline QString adminToken(void) { return m_adminToken; } inline void resetAdminToken(void) { m_adminToken = randomData(32).toHex(); } inline QString guestToken(void) { return m_guestToken; } inline void resetGuestToken(void) { m_guestToken = randomData(32).toHex(); } inline void updateDasboards(const QJsonArray &data) { m_dashboards = data; } inline void updateIcons(const QJsonObject &data) { m_icons = data; } inline void updateNames(const QJsonObject &data) { m_names = data; } void init(void); void store(bool sync = false); QByteArray randomData(int length); private: QTimer *m_timer; QFile m_file; bool m_sync, m_passive; QString m_adminToken, m_guestToken; QJsonArray m_dashboards; QJsonObject m_icons, m_names; private slots: void write(void); }; #endif