UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::UniversalObjectLocator::FResolveParameterBuffer Struct Reference

#include <UniversalObjectLocatorResolveParameterBuffer.h>

+ Inheritance diagram for UE::UniversalObjectLocator::FResolveParameterBuffer:

Public Member Functions

UNIVERSALOBJECTLOCATOR_API FResolveParameterBuffer ()
 
UNIVERSALOBJECTLOCATOR_API ~FResolveParameterBuffer ()
 
 FResolveParameterBuffer (const FResolveParameterBuffer &)=delete
 
FResolveParameterBufferoperator= (const FResolveParameterBuffer &)=delete
 
 FResolveParameterBuffer (FResolveParameterBuffer &&RHS)=delete
 
FResolveParameterBufferoperator= (FResolveParameterBuffer &&RHS)=delete
 
template<typename T >
const T * FindParameter () const
 
template<typename T >
const T * FindParameter (TParameterTypeHandle< T > ParameterTypeHandle) const
 
template<typename T , typename ... ArgTypes>
T * AddParameter (TParameterTypeHandle< T > ParameterTypeHandle, ArgTypes &&... InArgs)
 

Static Public Attributes

static constexpr int32 MaxNumParameters = sizeof(AllParameters) * 8
 

Protected Member Functions

bool HasParameter (uint32 ParameterBit) const
 
const voidFindParameterImpl (uint32 ParameterBit) const
 
template<typename ParameterType , typename ... ArgTypes>
ParameterType * AddParameterImpl (uint32 ParameterBit, ArgTypes &&... InArgs)
 
const FResolveParameterHeaderGetHeader (uint8 Index) const
 
int32 GetParameterIndex (uint32 ParameterBit) const
 
void Destroy ()
 

Protected Attributes

uint8Memory = nullptr
 
uint32 AllParameters = 0u
 
uint16 Capacity = 0u
 
uint8 Num = 0u
 
bool bCanFreeMemory = false
 

Detailed Description

A buffer of parameter structs that can be optionally supplied to a UOL when resolving to supply additional context.

Parameter types are registered through IUniversalObjectLocatorModule::RegisterParameterType and are identified by a unique index. Parameter structs are stored contiguously in memory after an array of headers that specify the offset of each parameter type.

Checking for the presence of a specific parameter type is very fast, amounting to a a simple bit operation.

Constructor & Destructor Documentation

◆ FResolveParameterBuffer() [1/3]

UE::UniversalObjectLocator::FResolveParameterBuffer::FResolveParameterBuffer ( )

Default constructor

◆ ~FResolveParameterBuffer()

UE::UniversalObjectLocator::FResolveParameterBuffer::~FResolveParameterBuffer ( )

Destructor that calls each parameter's destructor, and frees the memory if necessary

◆ FResolveParameterBuffer() [2/3]

UE::UniversalObjectLocator::FResolveParameterBuffer::FResolveParameterBuffer ( const FResolveParameterBuffer )
delete

Non-copyable

◆ FResolveParameterBuffer() [3/3]

UE::UniversalObjectLocator::FResolveParameterBuffer::FResolveParameterBuffer ( FResolveParameterBuffer &&  RHS)
delete

Non-moveable

Member Function Documentation

◆ AddParameter()

template<typename T , typename ... ArgTypes>
T * UE::UniversalObjectLocator::FResolveParameterBuffer::AddParameter ( TParameterTypeHandle< T >  ParameterTypeHandle,
ArgTypes &&...  InArgs 
)

Add a new parameter to this container using its preregistered type handle. This function is accepts 0 or more additional construction arguments which are passed to the parameter's constructor.

Note
: The definition of this function is located in UniversalObjectLocatorResolveParameterBuffer.inl
Returns
A pointer to the parameter if present, nullptr otherwise

◆ AddParameterImpl()

template<typename ParameterType , typename ... ArgTypes>
ParameterType * UE::UniversalObjectLocator::FResolveParameterBuffer::AddParameterImpl ( uint32  ParameterBit,
ArgTypes &&...  InArgs 
)
protected

Creates and stores a new Parameter object at the given bit.

Note
: The definition of this function is located in UniversalObjectLocatorResolveParameterBuffer.inl

◆ Destroy()

void UE::UniversalObjectLocator::FResolveParameterBuffer::Destroy ( )
protected

Destroy this buffer and all its parameters

◆ FindParameter() [1/2]

template<typename T >
const T * UE::UniversalObjectLocator::FResolveParameterBuffer::FindParameter ( ) const

Find a parameter of the specified type. Relies upon the struct type defining a static TParameterTypeHandle<T> called ParameterType that was previously registered through RegisterParameterType.

Returns
A pointer to the parameter if present, nullptr otherwise

◆ FindParameter() [2/2]

template<typename T >
const T * UE::UniversalObjectLocator::FResolveParameterBuffer::FindParameter ( TParameterTypeHandle< T >  ParameterTypeHandle) const

Find a parameter within this container that was added with the specified handle.

Returns
A pointer to the parameter if present, nullptr otherwise

◆ FindParameterImpl()

const void * UE::UniversalObjectLocator::FResolveParameterBuffer::FindParameterImpl ( uint32  ParameterBit) const
inlineprotected

Implementation function for finding a parameter ptr by its bit

◆ GetHeader()

const FResolveParameterHeader & UE::UniversalObjectLocator::FResolveParameterBuffer::GetHeader ( uint8  Index) const
inlineprotected

Retrieve the header at the specified index

◆ GetParameterIndex()

int32 UE::UniversalObjectLocator::FResolveParameterBuffer::GetParameterIndex ( uint32  ParameterBit) const
inlineprotected

Compute the index of the parameter that relates to the specified bit

◆ HasParameter()

bool UE::UniversalObjectLocator::FResolveParameterBuffer::HasParameter ( uint32  ParameterBit) const
inlineprotected

Check whether the parameter for the specified parameter bit is present

◆ operator=() [1/2]

FResolveParameterBuffer & UE::UniversalObjectLocator::FResolveParameterBuffer::operator= ( const FResolveParameterBuffer )
delete

◆ operator=() [2/2]

FResolveParameterBuffer & UE::UniversalObjectLocator::FResolveParameterBuffer::operator= ( FResolveParameterBuffer &&  RHS)
delete

Member Data Documentation

◆ AllParameters

uint32 UE::UniversalObjectLocator::FResolveParameterBuffer::AllParameters = 0u
protected

Bitmask of all the parameters contained within this container

◆ bCanFreeMemory

bool UE::UniversalObjectLocator::FResolveParameterBuffer::bCanFreeMemory = false
protected

Boolean that indicates whether we own the memory pointed to by Memory, or if it was supplied externally

◆ Capacity

uint16 UE::UniversalObjectLocator::FResolveParameterBuffer::Capacity = 0u
protected

Current capacity of Memory in bytes

◆ MaxNumParameters

constexpr int32 UE::UniversalObjectLocator::FResolveParameterBuffer::MaxNumParameters = sizeof(AllParameters) * 8
staticconstexpr

◆ Memory

uint8* UE::UniversalObjectLocator::FResolveParameterBuffer::Memory = nullptr
protected

Memory allocation of the layout [header_1|...|header_n|entry_0|...|entry_n]

◆ Num

uint8 UE::UniversalObjectLocator::FResolveParameterBuffer::Num = 0u
protected

The number of parameters (and thus, headers) in this container


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