diff options
Diffstat (limited to 'common/storage.h')
-rw-r--r-- | common/storage.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/common/storage.h b/common/storage.h new file mode 100644 index 0000000..f7dbd89 --- /dev/null +++ b/common/storage.h | |||
@@ -0,0 +1,28 @@ | |||
1 | #pragma once | ||
2 | |||
3 | #include <string> | ||
4 | #include <QString> | ||
5 | |||
6 | class Storage { | ||
7 | public: | ||
8 | enum TransactionType { ReadOnly, ReadWrite }; | ||
9 | |||
10 | Storage(const QString &storageRoot, const QString &name); | ||
11 | ~Storage(); | ||
12 | bool isInTransaction() const; | ||
13 | bool startTransaction(TransactionType type = ReadWrite); | ||
14 | bool commitTransaction(); | ||
15 | void abortTransaction(); | ||
16 | bool write(const char *key, size_t keySize, const char *value, size_t valueSize); | ||
17 | bool write(const std::string &sKey, const std::string &sValue); | ||
18 | //Perhaps prefer iterators (assuming we need to be able to match multiple values | ||
19 | void read(const std::string &sKey, const std::function<void(const std::string &value)> &); | ||
20 | void read(const std::string &sKey, const std::function<void(void *ptr, int size)> &); | ||
21 | |||
22 | qint64 diskUsage() const; | ||
23 | void removeFromDisk() const; | ||
24 | private: | ||
25 | class Private; | ||
26 | Private * const d; | ||
27 | }; | ||
28 | |||