UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MemoryHasher.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
7#include "HAL/UnrealMemory.h"
10#include "UObject/NameTypes.h"
11#include "Logging/LogMacros.h"
12#include "CoreGlobals.h"
14#include "Misc/SecureHash.h"
15#include "Hash/Blake3.h"
16
20template <typename HashBuilder, typename HashDigest>
22{
23public:
26 {
27 this->SetIsSaving(true);
28 this->SetIsPersistent(false);
29 }
30
31 virtual void Serialize(void* Data, int64 Num) override
32 {
33 BuilderState.Update(reinterpret_cast<uint8*>(Data), Num);
34 }
35
37 {
38 return BuilderState.Finalize();
39 }
40
47 virtual FString GetArchiveName() const override { return TEXT("TMemoryHasherTemplate"); }
48
49 int64 TotalSize() override
50 {
51 return 0;
52 }
53
54protected:
55
57 HashBuilder BuilderState;
58};
59
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ Num
Definition MetalRHIPrivate.h:234
uint8_t uint8
Definition binka_ue_file_header.h:8
virtual CORE_API void SetIsSaving(bool bInIsSaving)
Definition Archive.cpp:1523
virtual CORE_API void SetIsPersistent(bool bInIsPersistent)
Definition Archive.cpp:1553
Definition MemoryArchive.h:15
Definition MemoryHasher.h:22
HashBuilder BuilderState
Definition MemoryHasher.h:57
virtual FString GetArchiveName() const override
Definition MemoryHasher.h:47
TMemoryHasher()
Definition MemoryHasher.h:24
virtual void Serialize(void *Data, int64 Num) override
Definition MemoryHasher.h:31
int64 TotalSize() override
Definition MemoryHasher.h:49
HashDigest Finalize()
Definition MemoryHasher.h:36