From fbe047a35fff100cb5f42d10984bccde137f586e Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 26 Apr 2023 15:21:32 +1000 Subject: Add some basic data and retrieval --- src/database/include/database.hpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/database/include/database.hpp') 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 #include +#include #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 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; + + Iterator(const Iterator&) = delete; + Iterator& operator=(const Iterator&) = delete; + + private: + std::unique_ptr it_; +}; + } // namespace database -- cgit v1.2.3