UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ArrayReader.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 "HAL/UnrealMemory.h"
7#include "Containers/Array.h"
10
11class FArrayReader final : public FMemoryArchive, public TArray<uint8>
12{
13public:
14 FArrayReader( bool bIsPersistent=false )
15 {
16 this->SetIsLoading(true);
17 this->SetIsPersistent(bIsPersistent);
18 }
19
26 virtual FString GetArchiveName() const { return TEXT("FArrayReader"); }
27
29 {
30 return (int64)Num();
31 }
32
33 void Serialize(void* Data, int64 Count)
34 {
35 if (Count && !IsError())
36 {
37 // Only serialize if we have the requested amount of data
38 if (Offset + Count <= Num())
39 {
40 FMemory::Memcpy(Data, &((*this)[(int32)Offset]), Count);
41 Offset += Count;
42 }
43 else
44 {
45 SetError();
46 }
47 }
48 }
49};
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
virtual CORE_API void SetIsPersistent(bool bInIsPersistent)
Definition Archive.cpp:1553
virtual CORE_API void SetIsLoading(bool bInIsLoading)
Definition Archive.cpp:1513
CORE_API void SetError()
Definition Archive.cpp:314
UE_FORCEINLINE_HINT bool IsError() const
Definition Archive.h:362
Definition ArrayReader.h:12
FArrayReader(bool bIsPersistent=false)
Definition ArrayReader.h:14
virtual FString GetArchiveName() const
Definition ArrayReader.h:26
void Serialize(void *Data, int64 Count)
Definition ArrayReader.h:33
int64 TotalSize()
Definition ArrayReader.h:28
Definition MemoryArchive.h:15
int64 Offset
Definition MemoryArchive.h:68
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160