From caf171abc24c20206eb8ecaff4b6e9137cb9e871 Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Wed, 13 Sep 2023 12:03:27 +0200 Subject: ZenCacheStore is now reference counted (#398) this change also adds a GetNamespaces function which may be used to enumerate all currently known cache namespaces --- src/zenserver/cache/structuredcachestore.cpp | 10 ++++++++++ src/zenserver/cache/structuredcachestore.h | 5 +++-- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src/zenserver/cache') diff --git a/src/zenserver/cache/structuredcachestore.cpp b/src/zenserver/cache/structuredcachestore.cpp index 1f284863d..56e83eef2 100644 --- a/src/zenserver/cache/structuredcachestore.cpp +++ b/src/zenserver/cache/structuredcachestore.cpp @@ -536,6 +536,16 @@ ZenCacheStore::FindNamespace(std::string_view Namespace) const return nullptr; } +std::vector +ZenCacheStore::GetNamespaces() +{ + std::vector Namespaces; + + IterateNamespaces([&](std::string_view Namespace, ZenCacheNamespace&) { Namespaces.push_back(std::string(Namespace)); }); + + return Namespaces; +} + void ZenCacheStore::IterateNamespaces(const std::function& Callback) const { diff --git a/src/zenserver/cache/structuredcachestore.h b/src/zenserver/cache/structuredcachestore.h index 067cfc0bf..05b60da34 100644 --- a/src/zenserver/cache/structuredcachestore.h +++ b/src/zenserver/cache/structuredcachestore.h @@ -102,11 +102,11 @@ private: /** Cache store interface - This manages a set of namespaces used for caching purposes. + This manages a set of namespaces used for derived data caching purposes. */ -class ZenCacheStore final +class ZenCacheStore final : public RefCounted { public: static constexpr std::string_view DefaultNamespace = @@ -157,6 +157,7 @@ public: Info GetInfo() const; std::optional GetNamespaceInfo(std::string_view Namespace); std::optional GetBucketInfo(std::string_view Namespace, std::string_view Bucket); + std::vector GetNamespaces(); private: const ZenCacheNamespace* FindNamespace(std::string_view Namespace) const; -- cgit v1.2.3