aboutsummaryrefslogtreecommitdiff
path: root/zenstore/CAS.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-10-21 18:03:41 +0200
committerStefan Boberg <[email protected]>2021-10-21 18:03:41 +0200
commit3e824897aed32282ec9ee297e1cfc3efc5a8d251 (patch)
tree199d71e7314ecf7df577b4466f0d599b86c4dd08 /zenstore/CAS.cpp
parentAdded IsReady flag to ZenServerEntry (diff)
downloadzen-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.cpp15
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;