diff options
| author | Stefan Boberg <[email protected]> | 2021-10-21 18:03:41 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-10-21 18:03:41 +0200 |
| commit | 3e824897aed32282ec9ee297e1cfc3efc5a8d251 (patch) | |
| tree | 199d71e7314ecf7df577b4466f0d599b86c4dd08 /zenstore/CAS.cpp | |
| parent | Added IsReady flag to ZenServerEntry (diff) | |
| download | zen-3e824897aed32282ec9ee297e1cfc3efc5a8d251.tar.xz zen-3e824897aed32282ec9ee297e1cfc3efc5a8d251.zip | |
gc: Added GcStorage base class and hooked it up to CasGc
Diffstat (limited to 'zenstore/CAS.cpp')
| -rw-r--r-- | zenstore/CAS.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
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 <zencore/testutils.h> #include <zencore/thread.h> #include <zencore/uid.h> +#include <zenstore/gc.h> #include <gsl/gsl-lite.hpp> @@ -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<CasStore> Store{CreateCasStore()}; + CasGc Gc; + + std::unique_ptr<CasStore> Store{CreateCasStore(Gc)}; Store->Initialize(config); ScrubContext Ctx; |