aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zenstore/cidstore.cpp17
-rw-r--r--zenstore/include/zenstore/cidstore.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/zenstore/cidstore.cpp b/zenstore/cidstore.cpp
index eaad0f5a8..c91f69ff7 100644
--- a/zenstore/cidstore.cpp
+++ b/zenstore/cidstore.cpp
@@ -73,6 +73,17 @@ struct CidStore::Impl
m_LogFile.Append({.Uncompressed = DecompressedId, .Compressed = CompressedHash});
}
+ IoHash RemapCid(const IoHash& DecompressedId)
+ {
+ RwLock::SharedLockScope _(m_Lock);
+ if (auto It = m_CidMap.find(DecompressedId); It != m_CidMap.end())
+ {
+ return It->second;
+ }
+
+ return IoHash::Zero;
+ }
+
IoBuffer FindChunkByCid(const IoHash& DecompressedId)
{
IoHash CompressedHash;
@@ -254,6 +265,12 @@ CidStore::FindChunkByCid(const IoHash& DecompressedId)
return m_Impl->FindChunkByCid(DecompressedId);
}
+IoHash
+CidStore::RemapCid(const IoHash& DecompressedId)
+{
+ return m_Impl->RemapCid(DecompressedId);
+}
+
bool
CidStore::ContainsChunk(const IoHash& DecompressedId)
{
diff --git a/zenstore/include/zenstore/cidstore.h b/zenstore/include/zenstore/cidstore.h
index acfedbc64..a69569bd2 100644
--- a/zenstore/include/zenstore/cidstore.h
+++ b/zenstore/include/zenstore/cidstore.h
@@ -57,6 +57,8 @@ public:
// TODO: add batch filter support
+ IoHash RemapCid(const IoHash& DecompressedId);
+
private:
struct Impl;
std::unique_ptr<Impl> m_Impl;