/
vault.hpp
92 lines (74 loc) · 2.45 KB
/
vault.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#ifndef QML_VAULT_H
#define QML_VAULT_H
#include <QObject>
#include <QThread>
#include <QStringList>
#include <QVariantMap>
class QJSValue;
class Worker;
class Vault : public QObject
{
Q_OBJECT
Q_PROPERTY(QString root READ root WRITE setRoot NOTIFY rootChanged)
Q_PROPERTY(QString backupHome READ backupHome WRITE setBackupHome NOTIFY backupHomeChanged)
public:
enum ImportExportAction {
Export,
Import
};
Q_ENUMS(ImportExportAction);
enum Operation {
Connect,
Backup,
Restore,
RemoveSnapshot,
ExportImportPrepare,
ExportImportExecute,
Data,
Maintenance,
ExportSnapshot
}
Q_ENUMS(Operation);
enum DataType {
SnapshotUnits
}
Q_ENUMS(DataType);
explicit Vault(QObject *parent = nullptr);
~Vault();
QString root() const;
QString backupHome() const;
void setRoot(const QString &root);
void setBackupHome(const QString &home);
Q_INVOKABLE void connectVault(bool reconnect);
Q_INVOKABLE void startBackup(const QString &message, const QStringList &units);
Q_INVOKABLE void startRestore(const QString &snapshot, const QStringList &units);
Q_INVOKABLE QStringList snapshots() const;
Q_INVOKABLE QVariantMap units() const;
Q_INVOKABLE void resetHead();
Q_INVOKABLE void removeSnapshot(const QString &name);
Q_INVOKABLE void exportImportPrepare(ImportExportAction action, const QString &path);
Q_INVOKABLE void exportImportExecute();
Q_INVOKABLE QString notes(const QString &snapshot) const;
Q_INVOKABLE void registerUnit(const QJSValue &unit, bool global);
Q_INVOKABLE void startGc();
Q_INVOKABLE void requestData(DataType, QVariantMap const &);
Q_INVOKABLE void reset();
Q_INVOKABLE void backupUnit(const QString &unit);
Q_INVOKABLE void tagSnapshot(const QString &message);
Q_INVOKABLE void restoreUnit(const QString &, const QString &);
Q_INVOKABLE void exportSnapshot(const QString &, const QString &);
signals:
void rootChanged();
void backupHomeChanged();
void done(Operation operation, const QVariantMap &data);
void progress(Operation operation, const QVariantMap &data);
void error(Operation operation, const QVariantMap &error);
void data(DataType id, const QVariantMap &context);
private:
void initWorker(bool reload);
QThread m_workerThread;
Worker *m_worker;
QString m_home;
QString m_root;
};
#endif