UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ArchiveMD5.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreMinimal.h"
7#include "HAL/Platform.h"
9#include "Misc/SecureHash.h"
11#include "UObject/NameTypes.h"
12
16class FArchiveMD5 : public FArchive
17{
18public:
19 inline FArchiveMD5()
20 {
21 SetIsLoading(false);
22 SetIsSaving(true);
23 SetIsPersistent(false);
24 }
25
26 CORE_API virtual FString GetArchiveName() const;
27
28 void Serialize(void* Data, int64 Num) override
29 {
30 MD5.Update((uint8*)Data, Num);
31 }
32
33 using FArchive::operator<<;
34
35 virtual FArchive& operator<<(class FName& Value) override
36 {
37 FString NameAsString = Value.ToString();
38 *this << NameAsString;
39 return *this;
40 }
41
42 virtual FArchive& operator<<(class UObject*& Value) override
43 {
44 check(0);
45 return *this;
46 }
47
48 virtual void Reset() override
49 {
51 MD5 = FMD5();
52 }
53
55 {
56 Hash.Set(MD5);
57 }
58
65
66protected:
68};
#define check(expr)
Definition AssertionMacros.h:314
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
FGuid MD5HashToGuid(const FMD5Hash &Hash)
Definition SecureHash.h:203
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition ArchiveMD5.h:17
virtual CORE_API FString GetArchiveName() const
Definition ArchiveMD5.cpp:8
void Serialize(void *Data, int64 Num) override
Definition ArchiveMD5.h:28
FGuid GetGuidFromHash()
Definition ArchiveMD5.h:59
virtual void Reset() override
Definition ArchiveMD5.h:48
virtual FArchive & operator<<(class FName &Value) override
Definition ArchiveMD5.h:35
FMD5 MD5
Definition ArchiveMD5.h:67
virtual FArchive & operator<<(class UObject *&Value) override
Definition ArchiveMD5.h:42
FArchiveMD5()
Definition ArchiveMD5.h:19
void GetHash(FMD5Hash &Hash)
Definition ArchiveMD5.h:54
Definition Archive.h:1208
virtual CORE_API void SetIsSaving(bool bInIsSaving)
Definition Archive.cpp:1523
virtual CORE_API void SetIsPersistent(bool bInIsPersistent)
Definition Archive.cpp:1553
virtual CORE_API void SetIsLoading(bool bInIsLoading)
Definition Archive.cpp:1513
virtual CORE_API void Reset()
Definition Archive.cpp:151
!it would be cool if these were implemented as subclasses of
Definition SecureHash.h:58
CORE_API void Update(const uint8 *input, uint64 inputLen)
Definition SecureHash.cpp:135
Definition NameTypes.h:617
Definition Object.h:95
Definition Guid.h:109
Definition SecureHash.h:133