diff options
| author | Per Larsson <[email protected]> | 2021-10-02 16:32:02 +0200 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2021-10-02 16:32:02 +0200 |
| commit | 8b3f1f2b2bae13925de1f051622115c0e58a68ba (patch) | |
| tree | 44f22755d1e2f6b79c05201e201d5f2ba26e9f32 /zenstore/CAS.cpp | |
| parent | Added support for choosing best ZEN upstream endpoint based on latency. (diff) | |
| parent | zen: added print/printpackage subcommands to help in debugging or inspecting ... (diff) | |
| download | zen-8b3f1f2b2bae13925de1f051622115c0e58a68ba.tar.xz zen-8b3f1f2b2bae13925de1f051622115c0e58a68ba.zip | |
Merge branch 'main' of https://github.com/EpicGames/zen
Diffstat (limited to 'zenstore/CAS.cpp')
| -rw-r--r-- | zenstore/CAS.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/zenstore/CAS.cpp b/zenstore/CAS.cpp index 1db2b50bf..808fc8fb3 100644 --- a/zenstore/CAS.cpp +++ b/zenstore/CAS.cpp @@ -32,6 +32,15 @@ CasChunkSet::AddChunkToSet(const IoHash& HashToAdd) } void +CasChunkSet::AddChunksToSet(std::span<const IoHash> HashesToAdd) +{ + for (const IoHash& Hash : HashesToAdd) + { + m_ChunkSet.insert(Hash); + } +} + +void CasChunkSet::RemoveChunksIf(std::function<bool(const IoHash& CandidateHash)>&& Predicate) { for (auto It = begin(m_ChunkSet), ItEnd = end(m_ChunkSet); It != ItEnd;) @@ -58,6 +67,34 @@ CasChunkSet::IterateChunks(std::function<void(const IoHash& ChunkHash)>&& Callba ////////////////////////////////////////////////////////////////////////// +struct GcContext::GcState +{ + CasChunkSet m_CasChunks; + CasChunkSet m_CidChunks; +}; + +GcContext::GcContext() : m_State(std::make_unique<GcState>()) +{ +} + +GcContext::~GcContext() +{ +} + +void +GcContext::ContributeCids(std::span<const IoHash> Cids) +{ + m_State->m_CidChunks.AddChunksToSet(Cids); +} + +void +GcContext::ContributeCas(std::span<const IoHash> Cas) +{ + m_State->m_CasChunks.AddChunksToSet(Cas); +} + +////////////////////////////////////////////////////////////////////////// + void ScrubContext::ReportBadChunks(std::span<IoHash> BadChunks) { |