36 inline const uint8*
Data()
const {
return CorePtr->Data(); }
84 BufCore(
const BufCore& Rhs) =
delete;
86 BufCore& operator=(
const BufCore& Rhs) =
delete;
88 inline uint8* Data() {
return DataPtr; }
112 inline uint32 AddRef()
const
114 return uint32(FPlatformAtomics::InterlockedIncrement(&NumRefs));
123 const int32 Refs = FPlatformAtomics::InterlockedDecrement(&NumRefs);
132 uint32 GetRefCount()
const
137 bool IsMemoryOwned()
const {
return Flags & OwnsMemory; }
140 CORE_API void CheckRefCount()
const;
142 uint8* DataPtr =
nullptr;
145 mutable int32 NumRefs = 0;
153 uint8 DataSizeHigh = 0;
159 ReadOnlyBuffer = 1 << 1,
164 void EnsureDataIsResident() {}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr TMemoryView< void > MakeMemoryView(void *Data, uint64 Size)
Definition MemoryView.h:257
FMutableMemoryView GetMutableView()
Definition IoBuffer.h:44
bool IsMemoryOwned() const
Definition IoBuffer.h:48
void EnsureOwned() const
Definition IoBuffer.h:50
uint64 DataSize() const
Definition IoBuffer.h:40
void SetSize(uint64 InSize)
Definition IoBuffer.h:46
EWrapTag
Definition IoBuffer.h:19
@ Wrap
Definition IoBuffer.h:19
bool operator!=(const FIoBuffer &Rhs) const
Definition IoBuffer.h:52
const uint8 * GetData() const
Definition IoBuffer.h:38
const uint8 * Data() const
Definition IoBuffer.h:36
CORE_API void MakeOwned() const
Definition IoBuffer.cpp:161
CORE_API TIoStatusOr< uint8 * > Release()
Definition IoBuffer.cpp:167
ECloneTag
Definition IoBuffer.h:18
@ Clone
Definition IoBuffer.h:18
FMemoryView GetView() const
Definition IoBuffer.h:43
uint64 GetSize() const
Definition IoBuffer.h:41
EAssumeOwnershipTag
Definition IoBuffer.h:17
@ AssumeOwnership
Definition IoBuffer.h:17
CORE_API FIoBuffer()
Definition IoBuffer.cpp:110
uint8 * GetData()
Definition IoBuffer.h:39
uint8 * Data()
Definition IoBuffer.h:37
friend class FIoBufferManager
Definition IoBuffer.h:177
Definition IoStatus.h:101
Definition RefCounting.h:454
@ Release
Definition PhysicsPublic.h:123
static UE_FORCEINLINE_HINT int32 Memcmp(const void *Buf1, const void *Buf2, SIZE_T Count)
Definition UnrealMemory.h:114