UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FSharedBuffer Class Reference

#include <SharedBuffer.h>

Public Member Functions

 FSharedBuffer ()=default
 
CORE_API FSharedBuffer (FBufferOwner *Owner)
 
CORE_API void Reset ()
 
const voidGetData () const
 
uint64 GetSize () const
 
FMemoryView GetView () const
 
 operator FMemoryView () const
 
 operator bool () const
 
bool IsNull () const
 
bool IsOwned () const
 
CORE_API FSharedBuffer MakeOwned () const &
 
CORE_API FSharedBuffer MakeOwned () &&
 
bool IsMaterialized () const
 
CORE_API void Materialize () const
 
CORE_API FUniqueBuffer MoveToUnique ()
 
bool operator== (const FSharedBuffer &BufferB) const
 
bool operator!= (const FSharedBuffer &BufferB) const
 

Static Public Member Functions

static CORE_API FSharedBuffer Clone (FMemoryView View)
 
static CORE_API FSharedBuffer Clone (const void *Data, uint64 Size)
 
static CORE_API FSharedBuffer MakeView (FMemoryView View)
 
static CORE_API FSharedBuffer MakeView (const void *Data, uint64 Size)
 
static CORE_API FSharedBuffer MakeView (FMemoryView View, FSharedBuffer &&OuterBuffer)
 
static CORE_API FSharedBuffer MakeView (FMemoryView View, const FSharedBuffer &OuterBuffer)
 
static CORE_API FSharedBuffer MakeView (const void *Data, uint64 Size, FSharedBuffer &&OuterBuffer)
 
static CORE_API FSharedBuffer MakeView (const void *Data, uint64 Size, const FSharedBuffer &OuterBuffer)
 
template<typename DeleteFunctionType , decltype(Invoke(std::declval< DeleteFunctionType >(), std::declval< void * >())) * = nullptr>
static FSharedBuffer TakeOwnership (const void *Data, uint64 Size, DeleteFunctionType &&DeleteFunction)
 
template<typename DeleteFunctionType , decltype(Invoke(std::declval< DeleteFunctionType >(), std::declval< void * >(), std::declval< uint64 >())) * = nullptr>
static FSharedBuffer TakeOwnership (const void *Data, uint64 Size, DeleteFunctionType &&DeleteFunction)
 

Friends

class FUniqueBuffer
 
class FWeakSharedBuffer
 
const FOwnerPtrType & ToPrivateOwnerPtr (const FSharedBuffer &Buffer)
 
FOwnerPtrType ToPrivateOwnerPtr (FSharedBuffer &&Buffer)
 
uint32 GetTypeHash (const FSharedBuffer &Buffer)
 
bool operator== (const FSharedBuffer &BufferA, const FUniqueBuffer &BufferB)
 
bool operator!= (const FSharedBuffer &BufferA, const FUniqueBuffer &BufferB)
 
bool operator== (const FUniqueBuffer &BufferA, const FSharedBuffer &BufferB)
 
bool operator!= (const FUniqueBuffer &BufferA, const FSharedBuffer &BufferB)
 

Detailed Description

A reference to a shared-ownership immutable buffer.

See also
FBufferOwner

Constructor & Destructor Documentation

◆ FSharedBuffer() [1/2]

FSharedBuffer::FSharedBuffer ( )
default

Construct a null shared buffer.

◆ FSharedBuffer() [2/2]

FSharedBuffer::FSharedBuffer ( FBufferOwner Owner)
explicit

Construct a shared buffer from a new unreferenced buffer owner.

Member Function Documentation

◆ Clone() [1/2]

FSharedBuffer FSharedBuffer::Clone ( const void Data,
uint64  Size 
)
static

◆ Clone() [2/2]

FSharedBuffer FSharedBuffer::Clone ( FMemoryView  View)
static

Make an owned clone of the input.

◆ GetData()

const void * FSharedBuffer::GetData ( ) const
inline

Returns a pointer to the start of the buffer.

◆ GetSize()

uint64 FSharedBuffer::GetSize ( ) const
inline

Returns the size of the buffer in bytes.

◆ GetView()

FMemoryView FSharedBuffer::GetView ( ) const
inline

Returns a view of the buffer.

◆ IsMaterialized()

bool FSharedBuffer::IsMaterialized ( ) const
inline

Returns true if the referenced buffer has been materialized.

◆ IsNull()

bool FSharedBuffer::IsNull ( ) const
inline

Returns true if this does not point to a buffer owner.

A null buffer is always owned, materialized, and empty.

◆ IsOwned()

bool FSharedBuffer::IsOwned ( ) const
inline

Returns true if this keeps the referenced buffer alive.

◆ MakeOwned() [1/2]

FSharedBuffer FSharedBuffer::MakeOwned ( ) &&

◆ MakeOwned() [2/2]

FSharedBuffer FSharedBuffer::MakeOwned ( ) const &

Returns a buffer that is owned, by cloning if not owned.

◆ MakeView() [1/6]

FSharedBuffer FSharedBuffer::MakeView ( const void Data,
uint64  Size 
)
static

◆ MakeView() [2/6]

FSharedBuffer FSharedBuffer::MakeView ( const void Data,
uint64  Size,
const FSharedBuffer OuterBuffer 
)
static

◆ MakeView() [3/6]

FSharedBuffer FSharedBuffer::MakeView ( const void Data,
uint64  Size,
FSharedBuffer &&  OuterBuffer 
)
static

◆ MakeView() [4/6]

FSharedBuffer FSharedBuffer::MakeView ( FMemoryView  View)
static

Make a non-owned view of the input.

◆ MakeView() [5/6]

FSharedBuffer FSharedBuffer::MakeView ( FMemoryView  View,
const FSharedBuffer OuterBuffer 
)
static

◆ MakeView() [6/6]

FSharedBuffer FSharedBuffer::MakeView ( FMemoryView  View,
FSharedBuffer &&  OuterBuffer 
)
static

Make a view of the input within its outer buffer. Ownership matches OuterBuffer.

◆ Materialize()

void FSharedBuffer::Materialize ( ) const

Materialize the buffer by making its data and size available.

The buffer is automatically materialized by GetData, GetSize, GetView.

◆ MoveToUnique()

FUniqueBuffer FSharedBuffer::MoveToUnique ( )

Convert this to a unique buffer, leaving this null.

Steals the buffer owner from the shared buffer if this is the last reference to it, otherwise clones the shared buffer to guarantee unique ownership. A non-owned buffer is always cloned.

◆ operator bool()

FSharedBuffer::operator bool ( ) const
inlineexplicit

Returns true if this points to a buffer owner.

◆ operator FMemoryView()

FSharedBuffer::operator FMemoryView ( ) const
inline

◆ operator!=()

bool FSharedBuffer::operator!= ( const FSharedBuffer BufferB) const
inline

◆ operator==()

bool FSharedBuffer::operator== ( const FSharedBuffer BufferB) const
inline

◆ Reset()

void FSharedBuffer::Reset ( )

Reset this to null.

◆ TakeOwnership() [1/2]

template<typename DeleteFunctionType , decltype(Invoke(std::declval< DeleteFunctionType >(), std::declval< void * >(), std::declval< uint64 >())) * >
FSharedBuffer FSharedBuffer::TakeOwnership ( const void Data,
uint64  Size,
DeleteFunctionType &&  DeleteFunction 
)
inlinestatic

Make an owned buffer by taking ownership of the input.

Parameters
DeleteFunctionCalled with Data to free memory when the last shared reference is released.

◆ TakeOwnership() [2/2]

template<typename DeleteFunctionType , decltype(Invoke(std::declval< DeleteFunctionType >(), std::declval< void * >(), std::declval< uint64 >())) * = nullptr>
static FSharedBuffer FSharedBuffer::TakeOwnership ( const void Data,
uint64  Size,
DeleteFunctionType &&  DeleteFunction 
)
inlinestatic

Make an owned buffer by taking ownership of the input.

Parameters
DeleteFunctionCalled with (Data, Size) to free memory when the last shared reference is released.

Friends And Related Symbol Documentation

◆ FUniqueBuffer

friend class FUniqueBuffer
friend

◆ FWeakSharedBuffer

friend class FWeakSharedBuffer
friend

◆ GetTypeHash

uint32 GetTypeHash ( const FSharedBuffer Buffer)
friend

◆ operator!= [1/2]

bool operator!= ( const FSharedBuffer BufferA,
const FUniqueBuffer BufferB 
)
friend

◆ operator!= [2/2]

bool operator!= ( const FUniqueBuffer BufferA,
const FSharedBuffer BufferB 
)
friend

◆ operator== [1/2]

bool operator== ( const FSharedBuffer BufferA,
const FUniqueBuffer BufferB 
)
friend

◆ operator== [2/2]

bool operator== ( const FUniqueBuffer BufferA,
const FSharedBuffer BufferB 
)
friend

◆ ToPrivateOwnerPtr [1/2]

const FOwnerPtrType & ToPrivateOwnerPtr ( const FSharedBuffer Buffer)
friend

◆ ToPrivateOwnerPtr [2/2]

FOwnerPtrType ToPrivateOwnerPtr ( FSharedBuffer &&  Buffer)
friend

The documentation for this class was generated from the following files: