UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Editor::DataStorage::IQueryContext Struct Referenceabstract

#include <TypedElementQueryStorageInterfaces.h>

+ Inheritance diagram for UE::Editor::DataStorage::IQueryContext:

Public Member Functions

virtual ~IQueryContext ()=default
 
virtual const UObjectGetDependency (const UClass *DependencyClass)=0
 
virtual UObjectGetMutableDependency (const UClass *DependencyClass)=0
 
virtual void GetDependencies (TArrayView< UObject * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UClass > > DependencyTypes, TConstArrayView< EQueryAccessType > AccessTypes)=0
 
virtual RowHandle LookupMappedRow (const FName &Domain, const FMapKeyView &Index) const =0
 
virtual FQueryResult RunQuery (QueryHandle Query)=0
 
virtual FQueryResult RunSubquery (int32 SubqueryIndex)=0
 
virtual FQueryResult RunSubquery (int32 SubqueryIndex, SubqueryCallbackRef Callback)=0
 
virtual FQueryResult RunSubquery (int32 SubqueryIndex, RowHandle Row, SubqueryCallbackRef Callback)=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
 
virtual void RemoveRow (RowHandle Row)=0
 
virtual void RemoveRows (TConstArrayView< RowHandle > Rows)=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 (RowHandle Row, TConstArrayView< const UScriptStruct * > ColumnTypes)=0
 
virtual void AddColumns (TConstArrayView< RowHandle > Rows, TConstArrayView< const UScriptStruct * > ColumnTypes)=0
 
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 void RemoveColumns (RowHandle Row, TConstArrayView< const UScriptStruct * > ColumnTypes)=0
 
virtual void RemoveColumns (TConstArrayView< RowHandle > Rows, TConstArrayView< const UScriptStruct * > ColumnTypes)=0
 
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
 
virtual uint32 GetRowCount () const =0
 
virtual TConstArrayView< RowHandleGetRowHandles () const =0
 
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)
 
virtual void GetColumns (TArrayView< char * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UScriptStruct > > ColumnTypes, TConstArrayView< EQueryAccessType > AccessTypes)=0
 
virtual void GetColumnsUnguarded (int32 TypeCount, char **RetrievedAddresses, const TWeakObjectPtr< const UScriptStruct > *ColumnTypes, const EQueryAccessType *AccessTypes)=0
 
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)
 
virtual void PushCommand (void(*CommandFunction)(void *), void *InCommandData)=0
 

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
 

Detailed Description

Interface to be provided to query callbacks running with the Data Storage. Note that at the time of writing only subclasses of Subsystem are supported as dependencies.

Constructor & Destructor Documentation

◆ ~IQueryContext()

virtual UE::Editor::DataStorage::IQueryContext::~IQueryContext ( )
virtualdefault

Member Function Documentation

◆ GetDependencies()

virtual void UE::Editor::DataStorage::IQueryContext::GetDependencies ( TArrayView< UObject * >  RetrievedAddresses,
TConstArrayView< TWeakObjectPtr< const UClass > >  DependencyTypes,
TConstArrayView< EQueryAccessType AccessTypes 
)
pure virtual

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.

Implemented in UE::Editor::DataStorage::Queries::FQueryContextForwarder.

◆ GetDependency()

virtual const UObject * UE::Editor::DataStorage::IQueryContext::GetDependency ( const UClass DependencyClass)
pure virtual

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

Implemented in UE::Editor::DataStorage::Queries::FQueryContextForwarder.

◆ GetMutableDependency()

virtual UObject * UE::Editor::DataStorage::IQueryContext::GetMutableDependency ( const UClass DependencyClass)
pure virtual

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

Implemented in UE::Editor::DataStorage::Queries::FQueryContextForwarder.

◆ LookupMappedRow()

virtual RowHandle UE::Editor::DataStorage::IQueryContext::LookupMappedRow ( const FName Domain,
const FMapKeyView Index 
) const
pure virtual

Retrieves the row for a mapped object in the provided domain. Returns an invalid row handle if the key wasn't found.

◆ RunQuery()

virtual FQueryResult UE::Editor::DataStorage::IQueryContext::RunQuery ( QueryHandle  Query)
pure virtual

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.

Implemented in UE::Editor::DataStorage::Queries::FQueryContextForwarder.

◆ RunSubquery() [1/3]

virtual FQueryResult UE::Editor::DataStorage::IQueryContext::RunSubquery ( int32  SubqueryIndex)
pure virtual

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.

Implemented in UE::Editor::DataStorage::Queries::FQueryContextForwarder.

◆ RunSubquery() [2/3]

virtual FQueryResult UE::Editor::DataStorage::IQueryContext::RunSubquery ( int32  SubqueryIndex,
RowHandle  Row,
SubqueryCallbackRef  Callback 
)
pure virtual

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.

Implemented in UE::Editor::DataStorage::Queries::FQueryContextForwarder.

◆ RunSubquery() [3/3]

virtual FQueryResult UE::Editor::DataStorage::IQueryContext::RunSubquery ( int32  SubqueryIndex,
SubqueryCallbackRef  Callback 
)
pure virtual

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.

Implemented in UE::Editor::DataStorage::Queries::FQueryContextForwarder.


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