149 namespace PaddingChunk
152 static const int32 ChunkIdA = 0x00000001;
153 static const int32 ChunkIdB = 0x00000000;
154 static const int32 ChunkIdC = 0x00000000;
156 static const uint32 ChunkSize = LegacyFixedChunkWindow;
163 return Guid.A == ChunkIdA &&
Guid.B == ChunkIdB &&
Guid.C == ChunkIdC &&
Guid.D >= 0 &&
Guid.D <= 255;
180 return FGuid(ChunkIdA, ChunkIdB, ChunkIdC,
Byte);
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
Definition ChunkData.h:315
Definition ChunkData.h:435
Definition ChunkData.h:293
virtual void GetDataLock(uint8 **OutChunkData, FChunkHeader **OutChunkHeader)=0
virtual ~IChunkDataAccess()
Definition ChunkData.h:295
virtual void ReleaseDataLock() const =0
virtual void GetDataLock(const uint8 **OutChunkData, const FChunkHeader **OutChunkHeader) const =0
Definition ChunkData.h:358
virtual EChunkSaveResult SaveToFile(const FString &Filename, const IChunkDataAccess *ChunkDataAccess) const =0
virtual void InjectShaToChunkData(TArray< uint8 > &Memory, const FSHAHash &ShaHashData) const =0
virtual ~IChunkDataSerialization()
Definition ChunkData.h:360
virtual bool DecompressValidatedRead(const FChunkHeader &InHeader, FMutableMemoryView InDestionationBuffer, const FUniqueBuffer &InCompressedBuffer) const =0
virtual IChunkDataAccess * LoadFromMemory(const TArray< uint8 > &Memory, EChunkLoadResult &OutLoadResult) const =0
virtual bool ValidateAndRead(FArchive &InArchive, FMutableMemoryView InDestinationBuffer, FChunkHeader &OutHeader, FUniqueBuffer &OutCompressedBuffer) const =0
virtual EChunkSaveResult SaveToArchiveUncompressed(FArchive &Archive, const IChunkDataAccess *ChunkDataAccess) const
Definition ChunkData.h:411
virtual IChunkDataAccess * LoadFromArchive(FArchive &Archive, EChunkLoadResult &OutLoadResult) const =0
virtual EChunkSaveResult SaveToArchive(FArchive &Archive, const IChunkDataAccess *ChunkDataAccess) const =0
virtual EChunkSaveResult SaveToMemory(TArray< uint8 > &Memory, const IChunkDataAccess *ChunkDataAccess) const =0
virtual IChunkDataAccess * LoadFromFile(const FString &Filename, EChunkLoadResult &OutLoadResult) const =0
Definition FileSystem.h:51
EChunkStorageFlags
Definition ChunkData.h:21
EChunkHashFlags
Definition ChunkData.h:36
static const uint32 LegacyFixedChunkWindow
Definition ChunkData.h:15
EChunkSaveResult
Definition ChunkData.h:97
EChunkLoadResult
Definition ChunkData.h:51
Definition Archive.h:1208
Definition SecureHash.h:226
Definition SharedBuffer.h:218
FORCEINLINE FGuid MakePaddingGuid(uint8 Byte)
Definition ChunkData.h:178
FORCEINLINE bool IsPadding(const FGuid &Guid)
Definition ChunkData.h:161
FORCEINLINE uint8 GetPaddingByte(const FGuid &Guid)
Definition ChunkData.h:169
Definition BuildPatchFileConstructor.h:28
Definition ChunkData.h:240
int64 FileSize
Definition ChunkData.h:253
uint64 Hash
Definition ChunkData.h:245
uint8 GroupNumber
Definition ChunkData.h:249
FSHAHash ShaHash
Definition ChunkData.h:247
FGuid Guid
Definition ChunkData.h:243
uint32 WindowSize
Definition ChunkData.h:251
FChunkInfo()
Definition ChunkData.cpp:243
Definition ChunkData.h:260
uint32 ByteSize
Definition ChunkData.h:263
uint64 ByteStart
Definition ChunkData.h:262
FGuid ChunkId
Definition ChunkData.h:261
Definition ChunkData.h:188
uint32 Offset
Definition ChunkData.h:217
FGuid Guid
Definition ChunkData.h:215
uint32 Size
Definition ChunkData.h:219
bool IsPadding() const
Definition ChunkData.h:202
FChunkPart()
Definition ChunkData.cpp:255
uint8 GetPaddingByte() const
Definition ChunkData.h:210
friend FArchive & operator<<(FArchive &Ar, FChunkPart &ChunkPart)
Definition ChunkData.cpp:269
Definition ChunkData.h:226
FChunkPart ChunkPart
Definition ChunkData.h:233
FString Filename
Definition ChunkData.h:229
FFileChunkPart()
Definition ChunkData.cpp:305
uint64 FileOffset
Definition ChunkData.h:231
Definition ChunkData.h:330
uint8 * GetData() const
Definition ChunkData.cpp:427
FChunkHeader * GetHeader() const
Definition ChunkData.cpp:422
~FScopeLockedChunkData()
Definition ChunkData.cpp:417