diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-07-09 14:41:02 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-07-11 12:12:42 +1000 |
| commit | a9d2335e1d86b3012789a440e7f0e71033393056 (patch) | |
| tree | 65f030a87862a1370cbb9250e7fee576f632f3bb /src/tangara/database | |
| parent | 7d33f992166ebfdc2566ac9d7e9da5533cc239bb (diff) | |
| download | tangara-fw-a9d2335e1d86b3012789a440e7f0e71033393056.tar.gz | |
Break FatfsStreamFactory's dep on ServiceLocator
Diffstat (limited to 'src/tangara/database')
| -rw-r--r-- | src/tangara/database/database.cpp | 6 | ||||
| -rw-r--r-- | src/tangara/database/database.hpp | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/tangara/database/database.cpp b/src/tangara/database/database.cpp index cf1430b3..85700431 100644 --- a/src/tangara/database/database.cpp +++ b/src/tangara/database/database.cpp @@ -684,6 +684,12 @@ auto Database::countRecords(const SearchKey& c) -> size_t { return count; } +Handle::Handle(std::shared_ptr<Database>& db) : db_(db) {} + +auto Handle::lock() -> std::shared_ptr<Database> { + return db_; +} + auto SearchKey::startKey() const -> std::string_view { if (key) { return *key; diff --git a/src/tangara/database/database.hpp b/src/tangara/database/database.hpp index d2de7c72..c2e72568 100644 --- a/src/tangara/database/database.hpp +++ b/src/tangara/database/database.hpp @@ -128,6 +128,16 @@ class Database { auto countRecords(const SearchKey& c) -> size_t; }; +class Handle { + public: + Handle(std::shared_ptr<Database>& db); + + auto lock() -> std::shared_ptr<Database>; + + private: + std::shared_ptr<Database>& db_; +}; + /* * Container for the data needed to iterate through database records. This is a * lower-level type that the higher-level iterators are built from; most users |
