database.h
Rama master · réplica de lectura del repositorio original.
#ifndef DATABASE_H
#define DATABASE_H
#define STORE_DELAY 20
#include <QFile>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QSettings>
#include <QTimer>
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