From a9d2335e1d86b3012789a440e7f0e71033393056 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 9 Jul 2024 14:41:02 +1000 Subject: Break FatfsStreamFactory's dep on ServiceLocator --- src/tangara/database/database.cpp | 6 ++++++ src/tangara/database/database.hpp | 10 ++++++++++ 2 files changed, 16 insertions(+) (limited to 'src/tangara/database') 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& db) : db_(db) {} + +auto Handle::lock() -> std::shared_ptr { + 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& db); + + auto lock() -> std::shared_ptr; + + private: + std::shared_ptr& 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 -- cgit v1.2.3