UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Editor::DataStorage::Queries::FQueryContextForwarder Struct Reference

#include <TypedElementQueryBuilder.h>

+ Inheritance diagram for UE::Editor::DataStorage::Queries::FQueryContextForwarder:

Public Member Functions

 FQueryContextForwarder (const FQueryDescription &InDescription, IQueryContext &InParentContext)
 
 ~FQueryContextForwarder ()=default
 
const voidGetColumn (const UScriptStruct *ColumnType) const override
 
voidGetMutableColumn (const UScriptStruct *ColumnType) override
 
void GetColumns (TArrayView< char * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UScriptStruct > > ColumnTypes, TConstArrayView< EQueryAccessType > AccessTypes) override
 
void GetColumnsUnguarded (int32 TypeCount, char **RetrievedAddresses, const TWeakObjectPtr< const UScriptStruct > *ColumnTypes, const EQueryAccessType *AccessTypes) override
 
bool HasColumn (const UScriptStruct *ColumnType) const override
 
UObjectGetMutableDependency (const UClass *DependencyClass) override
 
const UObjectGetDependency (const UClass *DependencyClass) override
 
void GetDependencies (TArrayView< UObject * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UClass > > SubsystemTypes, TConstArrayView< EQueryAccessType > AccessTypes) override
 
uint32 GetRowCount () const override
 
TConstArrayView< RowHandleGetRowHandles () const override
 
void RemoveRow (RowHandle Row) override
 
void RemoveRows (TConstArrayView< RowHandle > Rows) override
 
void AddColumns (RowHandle Row, TConstArrayView< const UScriptStruct * > ColumnTypes) override
 
void AddColumns (TConstArrayView< RowHandle > Rows, TConstArrayView< const UScriptStruct * > ColumnTypes) override
 
void RemoveColumns (RowHandle Row, TConstArrayView< const UScriptStruct * > ColumnTypes) override
 
void RemoveColumns (TConstArrayView< RowHandle > Rows, TConstArrayView< const UScriptStruct * > ColumnTypes) override
 
void PushCommand (void(*CommandFunction)(void *), void *CommandData) override
 
FQueryResult RunQuery (QueryHandle Query) override
 
FQueryResult RunSubquery (int32 SubqueryIndex) override
 
FQueryResult RunSubquery (int32 SubqueryIndex, SubqueryCallbackRef Callback) override
 
FQueryResult RunSubquery (int32 SubqueryIndex, RowHandle Row, SubqueryCallbackRef Callback) override
 
- Public Member Functions inherited from UE::Editor::DataStorage::IQueryContext
virtual ~IQueryContext ()=default
 
virtual RowHandle LookupMappedRow (const FName &Domain, const FMapKeyView &Index) const =0
 
- Public Member Functions inherited from UE::Editor::DataStorage::ICommonQueryWithEnvironmentContext
template<typename DynamicColumnTemplate >
const DynamicColumnTemplate * GetColumn (const FName &Identifier) const
 
template<typename DynamicColumnTemplate >
DynamicColumnTemplate * GetMutableColumn (const FName &Identifier)
 
template<typename DynamicColumnTemplate >
bool HasColumn (const FName &Identifier) const
 
template<typename DynamicColumnTemplate >
bool HasColumn (RowHandle Row, const FName &Identifier) const
 
virtual uint64 GetUpdateCycleId () const =0
 
virtual bool IsRowAvailable (RowHandle Row) const =0
 
virtual bool IsRowAssigned (RowHandle Row) const =0
 
virtual void ActivateQueries (FName ActivationName)=0
 
virtual RowHandle AddRow (TableHandle Table)=0
 
template<typename ColumnType >
ColumnType & AddColumn (RowHandle Row, ColumnType &&Column)
 
template<typename ColumnTypeTemplate >
ColumnTypeTemplateAddColumn (RowHandle Row, const FName &Identifier)
 
template<typename ColumnTypeTemplate >
ColumnTypeTemplateAddColumn (RowHandle Row, const FName &Identifier, ColumnTypeTemplate &&Column)
 
template<typename... Columns>
void AddColumns (RowHandle Row)
 
template<typename... Columns>
void AddColumns (TConstArrayView< RowHandle > Rows)
 
virtual void AddColumns (TConstArrayView< RowHandle > Rows, TConstArrayView< FDynamicColumnDescription > DynamicColumnDescriptions)=0
 
virtual voidAddColumnUninitialized (RowHandle Row, const UScriptStruct *ColumnType)=0
 
virtual voidAddColumnUninitialized (RowHandle Row, const UScriptStruct *ObjectType, ObjectCopyOrMove Relocator)=0
 
virtual voidAddColumnUninitialized (RowHandle Row, const FDynamicColumnDescription &DynamicColumnDescription, ObjectCopyOrMove Relocator)=0
 
virtual voidAddColumnUninitialized (RowHandle Row, const FDynamicColumnDescription &DynamicColumnDescription)=0
 
template<typename... Columns>
void RemoveColumns (RowHandle Row)
 
template<typename... Columns>
void RemoveColumns (TConstArrayView< RowHandle > Rows)
 
virtual const voidGetColumn (const UScriptStruct *ColumnType) const=0
 
template<TDataColumnType Column>
const Column * GetColumn () const
 
template<TDynamicColumnTemplate TemplateType>
const TemplateType * GetColumn (const FName &Identifier) const
 
virtual bool HasColumn (const UScriptStruct *ColumnType) const=0
 
template<typename Column >
bool HasColumn () const
 
virtual bool HasColumn (RowHandle Row, const UScriptStruct *ColumnType) const=0
 
template<typename Column >
bool HasColumn (RowHandle Row) const
 
template<TDynamicColumnTemplate DynamicColumnTemplate>
bool HasColumn (RowHandle Row, const FName &Identifier) const
 
virtual voidGetMutableColumn (const UScriptStruct *ColumnType)=0
 
template<typename Column >
Column * GetMutableColumn ()
 
template<TDynamicColumnTemplate TemplateType>
TemplateType * GetMutableColumn (const FName &Identifier)
 
- Public Member Functions inherited from UE::Editor::DataStorage::ICommonQueryContext
virtual ~ICommonQueryContext ()=default
 
template<TDataColumnType Column>
const Column * GetColumn () const
 
template<TDynamicColumnTemplate TemplateType>
const TemplateType * GetColumn (const FName &Identifier) const
 
template<typename Column >
Column * GetMutableColumn ()
 
template<TDynamicColumnTemplate TemplateType>
TemplateType * GetMutableColumn (const FName &Identifier)
 
template<typename Column >
bool HasColumn () const
 
template<typename Column >
bool HasColumn (RowHandle Row) const
 
template<TDynamicColumnTemplate DynamicColumnTemplate>
bool HasColumn (RowHandle Row, const FName &Identifier) const
 
virtual const UScriptStructFindDynamicColumnType (const FDynamicColumnDescription &Description) const =0
 
template<TDynamicColumnTemplate TemplateType>
const UScriptStructFindDynamicColumnType (const FName &Identifier) const
 
virtual void SetParentRow (RowHandle Target, RowHandle Parent)=0
 
virtual void SetUnresolvedParent (RowHandle Target, FMapKey ParentId, FName MappingDomain)=0
 
virtual RowHandle GetParentRow (RowHandle Target) const =0
 
virtual float GetDeltaTimeSeconds () const =0
 
template<typename T >
void PushCommand (T CommandContext)
 

Public Attributes

IQueryContextParentContext
 
const FQueryDescriptionDescription
 

Additional Inherited Members

- Public Types inherited from UE::Editor::DataStorage::ICommonQueryWithEnvironmentContext
using ObjectCopyOrMove = void(*)(const UScriptStruct &TypeInfo, void *Destination, void *Source)
 
- Protected Member Functions inherited from UE::Editor::DataStorage::ICommonQueryContext
virtual voidEmplaceObjectInScratch (const FEmplaceObjectParams &Params)=0
 

Constructor & Destructor Documentation

◆ FQueryContextForwarder()

UE::Editor::DataStorage::Queries::FQueryContextForwarder::FQueryContextForwarder ( const FQueryDescription InDescription,
IQueryContext InParentContext 
)
inline

◆ ~FQueryContextForwarder()

UE::Editor::DataStorage::Queries::FQueryContextForwarder::~FQueryContextForwarder ( )
inlinedefault

Member Function Documentation

◆ AddColumns() [1/2]

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::AddColumns ( RowHandle  Row,
TConstArrayView< const UScriptStruct * >  ColumnTypes 
)
inlineoverridevirtual

Adds new empty columns to a row of the provided type. The addition will not be immediately done but delayed until the end of the tick group.

Implements UE::Editor::DataStorage::ICommonQueryWithEnvironmentContext.

◆ AddColumns() [2/2]

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::AddColumns ( TConstArrayView< RowHandle Rows,
TConstArrayView< const UScriptStruct * >  ColumnTypes 
)
inlineoverridevirtual

Adds new empty columns to the listed rows of the provided type. The addition will not be immediately done but delayed until the end of the tick group.

Implements UE::Editor::DataStorage::ICommonQueryWithEnvironmentContext.

◆ GetColumn()

const void * UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetColumn ( const UScriptStruct ColumnType) const
inlineoverridevirtual

Return the address of a immutable column matching the requested type or a nullptr if not found.

Implements UE::Editor::DataStorage::ICommonQueryContext.

◆ GetColumns()

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetColumns ( TArrayView< char * >  RetrievedAddresses,
TConstArrayView< TWeakObjectPtr< const UScriptStruct > >  ColumnTypes,
TConstArrayView< EQueryAccessType AccessTypes 
)
inlineoverridevirtual

Get a list of columns or nullptrs if the column type wasn't found. Mutable addresses are returned and it's up to the caller to not change immutable addresses.

Implements UE::Editor::DataStorage::ICommonQueryContext.

◆ GetColumnsUnguarded()

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetColumnsUnguarded ( int32  TypeCount,
char **  RetrievedAddresses,
const TWeakObjectPtr< const UScriptStruct > *  ColumnTypes,
const EQueryAccessType AccessTypes 
)
inlineoverridevirtual

Get a list of columns or nullptrs if the column type wasn't found. Mutable addresses are returned and it's up to the caller to not change immutable addresses. This version doesn't verify that the enough space is provided and it's up to the caller to guarantee the target addresses have enough space.

Implements UE::Editor::DataStorage::ICommonQueryContext.

◆ GetDependencies()

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetDependencies ( TArrayView< UObject * >  RetrievedAddresses,
TConstArrayView< TWeakObjectPtr< const UClass > >  DependencyTypes,
TConstArrayView< EQueryAccessType AccessTypes 
)
inlineoverridevirtual

Returns a list of dependencies or nullptrs if a dependency wasn't found. Mutable versions are return and it's up to the caller to not change immutable dependencies.

Implements UE::Editor::DataStorage::IQueryContext.

◆ GetDependency()

const UObject * UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetDependency ( const UClass DependencyClass)
inlineoverridevirtual

Returns an immutable instance of the requested dependency or a nullptr if not found.

Implements UE::Editor::DataStorage::IQueryContext.

◆ GetMutableColumn()

void * UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetMutableColumn ( const UScriptStruct ColumnType)
inlineoverridevirtual

Return the address of a mutable column matching the requested type or a nullptr if not found.

Implements UE::Editor::DataStorage::ICommonQueryContext.

◆ GetMutableDependency()

UObject * UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetMutableDependency ( const UClass DependencyClass)
inlineoverridevirtual

Returns a mutable instance of the requested dependency or a nullptr if not found.

Implements UE::Editor::DataStorage::IQueryContext.

◆ GetRowCount()

uint32 UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetRowCount ( ) const
inlineoverridevirtual

Returns the number rows in the batch.

Implements UE::Editor::DataStorage::ICommonQueryContext.

◆ GetRowHandles()

TConstArrayView< RowHandle > UE::Editor::DataStorage::Queries::FQueryContextForwarder::GetRowHandles ( ) const
inlineoverridevirtual

Returns an immutable view that contains the row handles for all returned results. The returned size will be the same as the value returned by GetRowCount().

Implements UE::Editor::DataStorage::ICommonQueryContext.

◆ HasColumn()

bool UE::Editor::DataStorage::Queries::FQueryContextForwarder::HasColumn ( const UScriptStruct ColumnType) const
inlineoverridevirtual

◆ PushCommand()

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::PushCommand ( void(*)(void *)  CommandFunction,
void CommandData 
)
inlineoverridevirtual

◆ RemoveColumns() [1/2]

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::RemoveColumns ( RowHandle  Row,
TConstArrayView< const UScriptStruct * >  ColumnTypes 
)
inlineoverridevirtual

Removes columns of the provided types from a row. The removal will not be immediately done but delayed until the end of the tick group.

Implements UE::Editor::DataStorage::ICommonQueryWithEnvironmentContext.

◆ RemoveColumns() [2/2]

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::RemoveColumns ( TConstArrayView< RowHandle Rows,
TConstArrayView< const UScriptStruct * >  ColumnTypes 
)
inlineoverridevirtual

Removes columns of the provided types from the listed rows. The removal will not be immediately done but delayed until the end of the tick group.

Implements UE::Editor::DataStorage::ICommonQueryWithEnvironmentContext.

◆ RemoveRow()

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::RemoveRow ( RowHandle  Row)
inlineoverridevirtual

Removes the row with the provided row handle. The removal will not be immediately done but delayed until the end of the tick group.

Implements UE::Editor::DataStorage::ICommonQueryWithEnvironmentContext.

◆ RemoveRows()

void UE::Editor::DataStorage::Queries::FQueryContextForwarder::RemoveRows ( TConstArrayView< RowHandle Rows)
inlineoverridevirtual

Removes rows with the provided row handles. The removal will not be immediately done but delayed until the end of the tick group.

Implements UE::Editor::DataStorage::ICommonQueryWithEnvironmentContext.

◆ RunQuery()

FQueryResult UE::Editor::DataStorage::Queries::FQueryContextForwarder::RunQuery ( QueryHandle  Query)
inlineoverridevirtual

Runs a previously created query. This version takes an arbitrary query, but is limited to running queries that do not directly access data from rows such as count queries. The returned result is a snap shot and values may change between phases.

Implements UE::Editor::DataStorage::IQueryContext.

◆ RunSubquery() [1/3]

FQueryResult UE::Editor::DataStorage::Queries::FQueryContextForwarder::RunSubquery ( int32  SubqueryIndex)
inlineoverridevirtual

Runs a subquery registered with the current query. The subquery index is in the order of registration with the query. Subqueries are executed as part of their parent query and are not scheduled separately.

Implements UE::Editor::DataStorage::IQueryContext.

◆ RunSubquery() [2/3]

FQueryResult UE::Editor::DataStorage::Queries::FQueryContextForwarder::RunSubquery ( int32  SubqueryIndex,
RowHandle  Row,
SubqueryCallbackRef  Callback 
)
inlineoverridevirtual

Runs the provided callback on a subquery registered with the current query for the exact provided row. The subquery index is in the order of registration with the query. If the row handle is in a table that doesn't match the selected subquery the callback will not be called. Check the count in the returned results to determine if the callback was called or not. Subqueries are executed as part of their parent query and are not scheduled separately.

Implements UE::Editor::DataStorage::IQueryContext.

◆ RunSubquery() [3/3]

FQueryResult UE::Editor::DataStorage::Queries::FQueryContextForwarder::RunSubquery ( int32  SubqueryIndex,
SubqueryCallbackRef  Callback 
)
inlineoverridevirtual

Runs the provided callback on a subquery registered with the current query. The subquery index is in the order of registration with the query. Subqueries are executed as part of their parent query and are not scheduled separately.

Implements UE::Editor::DataStorage::IQueryContext.

Member Data Documentation

◆ Description

const FQueryDescription& UE::Editor::DataStorage::Queries::FQueryContextForwarder::Description

◆ ParentContext

IQueryContext& UE::Editor::DataStorage::Queries::FQueryContextForwarder::ParentContext

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