aboutsummaryrefslogtreecommitdiff
path: root/zenserver/cache/structuredcachestore.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-11-18 14:42:57 +0100
committerStefan Boberg <[email protected]>2021-11-18 14:43:08 +0100
commit4e90f777861faba2b17ceed6250bdb2493ebcefa (patch)
treeeb8bb583f2a98a21e4306e4c8e3929054c1d64b7 /zenserver/cache/structuredcachestore.cpp
parentmerge from main (diff)
downloadzen-4e90f777861faba2b17ceed6250bdb2493ebcefa.tar.xz
zen-4e90f777861faba2b17ceed6250bdb2493ebcefa.zip
Fixed up some merge fallout
Diffstat (limited to 'zenserver/cache/structuredcachestore.cpp')
-rw-r--r--zenserver/cache/structuredcachestore.cpp64
1 files changed, 28 insertions, 36 deletions
diff --git a/zenserver/cache/structuredcachestore.cpp b/zenserver/cache/structuredcachestore.cpp
index 5cce7f325..44226457c 100644
--- a/zenserver/cache/structuredcachestore.cpp
+++ b/zenserver/cache/structuredcachestore.cpp
@@ -347,52 +347,44 @@ ZenCacheMemoryLayer::CacheBucket::Put(const IoHash& HashKey, const ZenCacheValue
//////////////////////////////////////////////////////////////////////////
-inline DiskLocation::DiskLocation() = default;
+#pragma pack(push)
+#pragma pack(1)
-inline DiskLocation::DiskLocation(uint64_t Offset, uint64_t ValueSize, uint32_t IndexSize, uint64_t Flags)
-: OffsetAndFlags(CombineOffsetAndFlags(Offset, Flags))
-, LowerSize(ValueSize & 0xFFFFffff)
-, IndexDataSize(IndexSize)
+struct DiskLocation
{
-}
+ inline DiskLocation() = default;
-inline uint64_t
-DiskLocation::CombineOffsetAndFlags(uint64_t Offset, uint64_t Flags)
-{
- return Offset | Flags;
-}
+ inline DiskLocation(uint64_t Offset, uint64_t ValueSize, uint32_t IndexSize, uint64_t Flags)
+ : OffsetAndFlags(CombineOffsetAndFlags(Offset, Flags))
+ , LowerSize(ValueSize & 0xFFFFffff)
+ , IndexDataSize(IndexSize)
+ {
+ }
-inline uint64_t
-DiskLocation::Offset() const
-{
- return OffsetAndFlags & kOffsetMask;
-}
+ static const uint64_t kOffsetMask = 0x0000'ffFF'ffFF'ffFFull;
+ static const uint64_t kSizeMask = 0x00FF'0000'0000'0000ull;
+ static const uint64_t kFlagsMask = 0xff00'0000'0000'0000ull;
+ static const uint64_t kStandaloneFile = 0x8000'0000'0000'0000ull;
+ static const uint64_t kStructured = 0x4000'0000'0000'0000ull;
+ static const uint64_t kTombStone = 0x2000'0000'0000'0000ull;
-inline uint64_t
-DiskLocation::Size() const
-{
- return LowerSize;
-}
+ static uint64_t CombineOffsetAndFlags(uint64_t Offset, uint64_t Flags) { return Offset | Flags; }
-inline uint64_t
-DiskLocation::IsFlagSet(uint64_t Flag) const
-{
- return OffsetAndFlags & Flag;
-}
+ inline uint64_t Offset() const { return OffsetAndFlags & kOffsetMask; }
+ inline uint64_t Size() const { return LowerSize; }
+ inline uint64_t IsFlagSet(uint64_t Flag) const { return OffsetAndFlags & Flag; }
+ inline ZenContentType GetContentType() const
+ {
+ ZenContentType ContentType = ZenContentType::kBinary;
-inline ZenContentType
-DiskLocation::GetContentType() const
-{
- ZenContentType ContentType = ZenContentType::kBinary;
+ if (IsFlagSet(DiskLocation::kStructured))
+ {
+ ContentType = ZenContentType::kCbObject;
+ }
- if (IsFlagSet(DiskLocation::kStructured))
- {
- ContentType = ZenContentType::kCbObject;
+ return ContentType;
}
- return ContentType;
-}
-
private:
uint64_t OffsetAndFlags = 0;
uint32_t LowerSize = 0;