UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
EditorBulkDataReader.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7
8#if WITH_EDITORONLY_DATA
9
10namespace UE::Serialization
11{
12
13namespace Private
14{
15
19{
20protected:
21 DataAccessWrapper(FEditorBulkData& InBulkData)
22 : Payload(InBulkData.GetPayload().Get())
23
24 {
25
26 }
27
28 virtual ~DataAccessWrapper() = default;
29
30 bool IsValid() const
31 {
32 return !Payload.IsNull();
33 }
34
35 void* GetData() const
36 {
37 // It's okay to remove the const qualifier here as it will only be passed
38 // on to FBufferReaderBase, which will not change the data at all, but takes a non-const
39 // pointer so that it can free the memory if requested, which we don't.
40 return const_cast<void*>(Payload.GetData());
41 }
42
43 int64 GetDataLength() const
44 {
45 return Payload.GetSize();
46 }
47
48private:
49 FSharedBuffer Payload;
50};
51
52} // namespace Private
53
54class FEditorBulkDataReader : protected Private::DataAccessWrapper, public FBufferReaderBase
55{
56public:
57 FEditorBulkDataReader(FEditorBulkData& InBulkData, bool bIsPersistent = false)
59 , FBufferReaderBase(GetData(), GetDataLength(), false, bIsPersistent)
60 {
61 }
62
63 virtual ~FEditorBulkDataReader() = default;
64
66 bool IsValid() const
67 {
68 return Private::DataAccessWrapper::IsValid();
69 }
70
71 using FArchive::operator<<; // For visibility of the overloads we don't override
72
73 virtual FArchive& operator<<(class FName& Name) override
74 {
75 // FNames are serialized as strings in BulkData
76 FString StringName;
77 *this << StringName;
79 return *this;
80 }
81
82 virtual FString GetArchiveName() const
83 {
84 return TEXT("FEditorBulkDataReader");
85 }
86};
87
88} // namespace UE::Serialization
89
90#endif //WITH_EDITORONLY_DATA
#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
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
Definition Archive.h:1208
Definition BufferReader.h:16
Definition NameTypes.h:617
Definition SharedBuffer.h:341
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
Definition OverriddenPropertySet.cpp:45
Definition StructuredLog.cpp:42
@ false
Definition radaudio_common.h:23