UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BuzHash.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"
6#include "Memory/MemoryView.h"
7
13{
14public:
16 UE_FORCEINLINE_HINT void Reset() { *this = FBuzHash(); }
17
19 UE_FORCEINLINE_HINT uint32 Get() const { return State; }
20
22 UE_FORCEINLINE_HINT uint64 GetWindowSize() const { return Count; }
23
25 inline void Add(uint8 X)
26 {
27 State = Rol32(State, 1) ^ Table[X];
28 Count++;
29 }
30
33 {
34 Add((const uint8*)View.GetData(), View.GetSize());
35 }
36
38 inline void Add(const uint8* Data, uint64 Size)
39 {
40 for (uint64 Idx = 0; Idx < Size; ++Idx)
41 {
42 Add(Data[Idx]);
43 }
44 }
45
47 inline void Sub(uint8 X)
48 {
49 State = State ^ Rol32(Table[X], uint32(Count - 1));
50 Count--;
51 }
52
53private:
54 CORE_API static const uint32 Table[256];
55
56 uint64 Count = 0;
57 uint32 State = 0;
58
59 static inline uint32 Rol32(uint32 V, uint32 N)
60 {
61 N &= 31;
62 return ((V) << (N)) | ((V) >> (32 - N));
63 }
64};
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
constexpr DataType * GetData() const
Definition MemoryView.h:68
constexpr uint64 GetSize() const
Definition MemoryView.h:74
Definition BuzHash.h:13
UE_FORCEINLINE_HINT uint64 GetWindowSize() const
Definition BuzHash.h:22
void Add(uint8 X)
Definition BuzHash.h:25
UE_FORCEINLINE_HINT void Add(FMemoryView View)
Definition BuzHash.h:32
UE_FORCEINLINE_HINT uint32 Get() const
Definition BuzHash.h:19
void Sub(uint8 X)
Definition BuzHash.h:47
UE_FORCEINLINE_HINT void Reset()
Definition BuzHash.h:16
void Add(const uint8 *Data, uint64 Size)
Definition BuzHash.h:38