From 3e824897aed32282ec9ee297e1cfc3efc5a8d251 Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Thu, 21 Oct 2021 18:03:41 +0200 Subject: gc: Added GcStorage base class and hooked it up to CasGc --- zenstore/CAS.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'zenstore/CAS.cpp') diff --git a/zenstore/CAS.cpp b/zenstore/CAS.cpp index 20ad20971..09e13a702 100644 --- a/zenstore/CAS.cpp +++ b/zenstore/CAS.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -94,7 +95,7 @@ ScrubContext::ReportScrubbed(uint64_t ChunkCount, uint64_t ChunkBytes) class CasImpl : public CasStore { public: - CasImpl(); + CasImpl(CasGc& Gc); virtual ~CasImpl(); virtual void Initialize(const CasStoreConfiguration& InConfig) override; @@ -123,7 +124,7 @@ private: void UpdateManifest(bool IsNewStore); }; -CasImpl::CasImpl() : m_TinyStrategy(m_Config), m_SmallStrategy(m_Config), m_LargeStrategy(m_Config) +CasImpl::CasImpl(CasGc& Gc) : m_TinyStrategy(m_Config), m_SmallStrategy(m_Config), m_LargeStrategy(m_Config, Gc) { } @@ -313,15 +314,15 @@ CasImpl::Scrub(ScrubContext& Ctx) void CasImpl::GarbageCollect(GcContext& GcCtx) { - m_LargeStrategy.GarbageCollect(GcCtx); + m_LargeStrategy.CollectGarbage(GcCtx); } ////////////////////////////////////////////////////////////////////////// CasStore* -CreateCasStore() +CreateCasStore(CasGc& Gc) { - return new CasImpl(); + return new CasImpl(Gc); } ////////////////////////////////////////////////////////////////////////// @@ -338,7 +339,9 @@ TEST_CASE("CasStore") CasStoreConfiguration config; config.RootDirectory = TempDir.Path(); - std::unique_ptr Store{CreateCasStore()}; + CasGc Gc; + + std::unique_ptr Store{CreateCasStore(Gc)}; Store->Initialize(config); ScrubContext Ctx; -- cgit v1.2.3