UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BulkDataScopedLock.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8
9// Note that these lock structures only work with the templated versions of FBulkData, such as
10// FByteBulkData or FFloatBulkData because they need to know the format of the bulkdata payload
11// which the base class FBulkData cannot provide.
12
14template<typename ElementType>
16{
17public:
19
21 : BulkData(InBulkData)
22 {
23 Data = reinterpret_cast<const ElementType*>(InBulkData.LockReadOnly());
24 }
25
27 {
28 BulkData.Unlock();
29 }
30
32 int64 Num() const
33 {
34 return BulkData.GetElementCount();
35 }
36
39 {
40 return BulkData.GetBulkDataSize();
41 }
42
44 const ElementType* GetData() const
45 {
46 return Data;
47 }
48
54
55private:
56 const TBulkData<ElementType>& BulkData;
57 const ElementType* Data;
58};
59
66template<typename ElementType>
68{
69public:
71
73 : BulkData(InBulkData)
74 {
75 Data = reinterpret_cast<ElementType*>(InBulkData.Lock(LOCK_READ_WRITE));
76 }
77
79 {
80 BulkData.Unlock();
81 }
82
84 int64 Num() const
85 {
86 return BulkData.GetElementCount();
87 }
88
91 {
92 return BulkData.GetBulkDataSize();
93 }
94
96 ElementType* GetData() const
97 {
98 return Data;
99 }
100
103 {
104 return TArrayView64<ElementType>(Data, Num());
105 }
106
107private:
108
109 TBulkData<ElementType>& BulkData;
110 ElementType* Data;
111};
@ LOCK_READ_WRITE
Definition BulkData.h:204
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
Definition BulkDataScopedLock.h:16
int64 Num() const
Definition BulkDataScopedLock.h:32
~TBulkDataScopedReadLock()
Definition BulkDataScopedLock.h:26
int64 GetAllocatedSize() const
Definition BulkDataScopedLock.h:38
UE_NONCOPYABLE(TBulkDataScopedReadLock)
TBulkDataScopedReadLock(const TBulkData< ElementType > &InBulkData)
Definition BulkDataScopedLock.h:20
TConstArrayView64< ElementType > GetView() const
Definition BulkDataScopedLock.h:50
const ElementType * GetData() const
Definition BulkDataScopedLock.h:44
Definition BulkDataScopedLock.h:68
TBulkDataScopedWriteLock(TBulkData< ElementType > &InBulkData)
Definition BulkDataScopedLock.h:72
TArrayView64< ElementType > GetView() const
Definition BulkDataScopedLock.h:102
ElementType * GetData() const
Definition BulkDataScopedLock.h:96
int64 Num() const
Definition BulkDataScopedLock.h:84
UE_NONCOPYABLE(TBulkDataScopedWriteLock)
~TBulkDataScopedWriteLock()
Definition BulkDataScopedLock.h:78
int64 GetAllocatedSize() const
Definition BulkDataScopedLock.h:90
Definition BulkData.h:1036