diff options
author | Aaron Seigo <aseigo@kde.org> | 2014-12-05 09:17:46 +0100 |
---|---|---|
committer | Aaron Seigo <aseigo@kde.org> | 2014-12-05 09:17:46 +0100 |
commit | 767312e2063f4e58af3de0f27aba52de49e14295 (patch) | |
tree | 8375b55e3496ece33f59de486f3354d731b6bc1e /common/storage.h | |
parent | 2b4e5743cca6a59e6e1a32b03863bf5ec4a4c30f (diff) | |
download | sink-767312e2063f4e58af3de0f27aba52de49e14295.tar.gz sink-767312e2063f4e58af3de0f27aba52de49e14295.zip |
major reorg that puts Storage (previously Database) into common
there is now a top-level tests dir, and a compile time switch for
lmdb vs kyotocabinet
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 | |||