diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-04-26 15:21:32 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-04-26 15:21:32 +1000 |
| commit | fbe047a35fff100cb5f42d10984bccde137f586e (patch) | |
| tree | ab05dff1142f6a6a14f4b03a4340672a5e65976a /src/database/include/database.hpp | |
| parent | 083f4011aa740d492d9a9ceb07c7228003f5ad39 (diff) | |
| download | tangara-fw-fbe047a35fff100cb5f42d10984bccde137f586e.tar.gz | |
Add some basic data and retrieval
Diffstat (limited to 'src/database/include/database.hpp')
| -rw-r--r-- | src/database/include/database.hpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/database/include/database.hpp b/src/database/include/database.hpp index b9df5fd4..cb1437df 100644 --- a/src/database/include/database.hpp +++ b/src/database/include/database.hpp @@ -1,13 +1,18 @@ #pragma once +#include <string> #include <memory> +#include <optional> #include "leveldb/cache.h" #include "leveldb/db.h" +#include "leveldb/iterator.h" #include "result.hpp" namespace database { +class Iterator; + class Database { public: enum DatabaseError { @@ -18,7 +23,10 @@ class Database { ~Database(); auto Initialise() -> void; - auto Update() -> void; + auto ByTitle() -> Iterator; + + Database(const Database&) = delete; + Database& operator=(const Database&) = delete; private: std::unique_ptr<leveldb::DB> db_; @@ -27,4 +35,17 @@ class Database { Database(leveldb::DB* db, leveldb::Cache* cache); }; +class Iterator { + public: + explicit Iterator(leveldb::Iterator *it) : it_(it) {} + + auto Next() -> std::optional<std::string>; + + Iterator(const Iterator&) = delete; + Iterator& operator=(const Iterator&) = delete; + + private: + std::unique_ptr<leveldb::Iterator> it_; +}; + } // namespace database |
