20 struct FQueryDescription;
21 struct ISubqueryContext;
44 template<TDataColumnType Column>
46 template<TDynamicColumnTemplate TemplateType>
51 template<
typename Column>
53 template<TDynamicColumnTemplate TemplateType>
80 template<
typename Column>
93 template<
typename Column>
96 template<TDynamicColumnTemplate DynamicColumnTemplate>
104 template<TDynamicColumnTemplate TemplateType>
120 FName MappingDomain) = 0;
178 template<
typename DynamicColumnTemplate>
188 template<
typename DynamicColumnTemplate>
194 template<
typename DynamicColumnTemplate>
200 template<
typename DynamicColumnTemplate>
244 template<
typename ColumnType>
253 template<
typename ColumnTypeTemplate>
262 template<
typename ColumnTypeTemplate>
268 template<
typename... Columns>
274 template<
typename... Columns>
315 template<
typename... Columns>
321 template<
typename... Columns>
454 template<TDataColumnType Column>
457 return reinterpret_cast<const Column*
>(
GetColumn(Column::StaticStruct()));
460 template <TDynamicColumnTemplate TemplateType>
467 template<
typename Column>
473 template <TDynamicColumnTemplate TemplateType>
480 template <
typename Column>
483 return HasColumn(Column::StaticStruct());
486 template <
typename Column>
489 return HasColumn(Row, Column::StaticStruct());
492 template <TDynamicColumnTemplate DynamicColumnTemplate>
502 template <TDynamicColumnTemplate TemplateType>
512 template <
typename DynamicColumnTemplate>
518 .TemplateType = DynamicColumnTemplate::StaticStruct(),
525 return static_cast<const DynamicColumnTemplate*
>(
ColumnData);
530 template <
typename DynamicColumnTemplate>
536 .TemplateType = DynamicColumnTemplate::StaticStruct(),
543 return static_cast<const DynamicColumnTemplate*
>(
ColumnData);
548 template <
typename DynamicColumnTemplate>
554 .TemplateType = DynamicColumnTemplate::StaticStruct(),
565 template <
typename DynamicColumnTemplate>
571 .TemplateType = DynamicColumnTemplate::StaticStruct(),
586 template<
typename ColumnType>
591 if constexpr (std::is_move_constructible_v<ColumnType>)
596 *
reinterpret_cast<ColumnType*
>(Destination) =
MoveTemp(*
reinterpret_cast<ColumnType*
>(Source));
604 return *
reinterpret_cast<ColumnType*
>(Address);
608 template <
typename ColumnTypeTemplate>
611 const UScriptStruct* TemplateType = ColumnTypeTemplate::StaticStruct();
614 .TemplateType = TemplateType,
633 template <
typename ColumnTypeTemplate>
636 const UScriptStruct* TemplateType = ColumnTypeTemplate::StaticStruct();
639 .TemplateType = TemplateType,
643 if constexpr (std::is_move_constructible_v<ColumnTypeTemplate>)
660 template<
typename... Columns>
663 AddColumns(Row, { Columns::StaticStruct()... });
666 template<
typename... Columns>
669 AddColumns(Rows, { Columns::StaticStruct()... });
672 template<
typename... Columns>
678 template<
typename... Columns>
684 template <
typename T>
687 if constexpr(std::is_empty_v<T>)
708 Params.ObjectSize =
sizeof(T);
709 Params.Alignment =
alignof(T);
715 if (std::is_trivially_destructible_v<T>)
717 Params.Destroy =
nullptr;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
Columns EContextCapabilityFlags::SupportsBatch TConstArrayView< RowHandle >
Definition TypedElementQueryCapabilities.inl:40
TConstArrayView< const UScriptStruct * > TConstArrayView< const UScriptStruct * >
Definition TypedElementQueryCapabilities.inl:16
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition AssetRegistryState.h:50
Definition AndroidPlatformMisc.h:14
COREUOBJECT_API void CopyScriptStruct(void *Dest, void const *Src, int32 ArrayDim=1) const
Definition Class.cpp:3730
Definition CommonTypes.h:95
Definition CommonTypes.h:98
Definition CommonTypes.cpp:10
EDirectQueryExecutionFlags
Definition TypedElementQueryStorageInterfaces.h:336
@ AutoBalanceParallelChunkProcessing
uint64 TableHandle
Definition Handles.h:12
ERunQueryFlags
Definition TypedElementQueryStorageInterfaces.h:355
uint64 QueryHandle
Definition Handles.h:18
uint64 RowHandle
Definition Handles.h:15
EQueryAccessType
Definition Types.h:91
U16 Index
Definition radfft.cpp:71
Definition WeakObjectPtrTemplates.h:25
Definition CommonTypes.h:72
const UScriptStruct * TemplateType
Definition CommonTypes.h:73
Definition Description.h:32
Definition TypedElementQueryStorageInterfaces.h:152
void * SourceObject
Definition TypedElementQueryStorageInterfaces.h:157
size_t ObjectSize
Definition TypedElementQueryStorageInterfaces.h:153
size_t Alignment
Definition TypedElementQueryStorageInterfaces.h:154
void(* Destroy)(void *)
Definition TypedElementQueryStorageInterfaces.h:156
void(* Construct)(void *, void *)
Definition TypedElementQueryStorageInterfaces.h:155
Definition TypedElementQueryStorageInterfaces.h:30
Column * GetMutableColumn()
Definition TypedElementQueryStorageInterfaces.h:468
virtual const void * GetColumn(const UScriptStruct *ColumnType) const =0
const Column * GetColumn() const
Definition TypedElementQueryStorageInterfaces.h:455
virtual const UScriptStruct * FindDynamicColumnType(const FDynamicColumnDescription &Description) const =0
virtual void * EmplaceObjectInScratch(const FEmplaceObjectParams &Params)=0
void PushCommand(T CommandContext)
Definition TypedElementQueryStorageInterfaces.h:685
virtual void * GetMutableColumn(const UScriptStruct *ColumnType)=0
virtual ~ICommonQueryContext()=default
virtual void GetColumnsUnguarded(int32 TypeCount, char **RetrievedAddresses, const TWeakObjectPtr< const UScriptStruct > *ColumnTypes, const EQueryAccessType *AccessTypes)=0
virtual void SetParentRow(RowHandle Target, RowHandle Parent)=0
virtual uint32 GetRowCount() const =0
virtual void PushCommand(void(*CommandFunction)(void *), void *InCommandData)=0
virtual TConstArrayView< RowHandle > GetRowHandles() const =0
virtual void GetColumns(TArrayView< char * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UScriptStruct > > ColumnTypes, TConstArrayView< EQueryAccessType > AccessTypes)=0
virtual float GetDeltaTimeSeconds() const =0
virtual RowHandle GetParentRow(RowHandle Target) const =0
virtual void SetUnresolvedParent(RowHandle Target, FMapKey ParentId, FName MappingDomain)=0
virtual bool HasColumn(RowHandle Row, const UScriptStruct *ColumnType) const =0
virtual bool HasColumn(const UScriptStruct *ColumnType) const =0
bool HasColumn() const
Definition TypedElementQueryStorageInterfaces.h:481
Definition TypedElementQueryStorageInterfaces.h:164
void RemoveColumns(RowHandle Row)
Definition TypedElementQueryStorageInterfaces.h:673
Column * GetMutableColumn()
Definition TypedElementQueryStorageInterfaces.h:468
const Column * GetColumn() const
Definition TypedElementQueryStorageInterfaces.h:455
virtual void * AddColumnUninitialized(RowHandle Row, const FDynamicColumnDescription &DynamicColumnDescription, ObjectCopyOrMove Relocator)=0
ColumnType & AddColumn(RowHandle Row, ColumnType &&Column)
Definition TypedElementQueryStorageInterfaces.h:587
virtual void AddColumns(RowHandle Row, TConstArrayView< const UScriptStruct * > ColumnTypes)=0
virtual void AddColumns(TConstArrayView< RowHandle > Rows, TConstArrayView< FDynamicColumnDescription > DynamicColumnDescriptions)=0
virtual void * AddColumnUninitialized(RowHandle Row, const UScriptStruct *ColumnType)=0
virtual void * AddColumnUninitialized(RowHandle Row, const FDynamicColumnDescription &DynamicColumnDescription)=0
virtual void RemoveRows(TConstArrayView< RowHandle > Rows)=0
virtual void ActivateQueries(FName ActivationName)=0
virtual void RemoveRow(RowHandle Row)=0
virtual void AddColumns(TConstArrayView< RowHandle > Rows, TConstArrayView< const UScriptStruct * > ColumnTypes)=0
virtual bool IsRowAssigned(RowHandle Row) const =0
virtual void * AddColumnUninitialized(RowHandle Row, const UScriptStruct *ObjectType, ObjectCopyOrMove Relocator)=0
virtual void RemoveColumns(RowHandle Row, TConstArrayView< const UScriptStruct * > ColumnTypes)=0
virtual bool IsRowAvailable(RowHandle Row) const =0
void(*)(const UScriptStruct &TypeInfo, void *Destination, void *Source) ObjectCopyOrMove
Definition TypedElementQueryStorageInterfaces.h:165
void AddColumns(RowHandle Row)
Definition TypedElementQueryStorageInterfaces.h:661
virtual RowHandle AddRow(TableHandle Table)=0
virtual void RemoveColumns(TConstArrayView< RowHandle > Rows, TConstArrayView< const UScriptStruct * > ColumnTypes)=0
virtual uint64 GetUpdateCycleId() const =0
bool HasColumn() const
Definition TypedElementQueryStorageInterfaces.h:481
Definition TypedElementQueryStorageInterfaces.h:373
virtual ~IDirectQueryContext()=default
Definition TypedElementQueryStorageInterfaces.h:390
virtual FQueryResult RunQuery(QueryHandle Query)=0
virtual ~IQueryContext()=default
virtual const UObject * GetDependency(const UClass *DependencyClass)=0
virtual FQueryResult RunSubquery(int32 SubqueryIndex, SubqueryCallbackRef Callback)=0
virtual RowHandle LookupMappedRow(const FName &Domain, const FMapKeyView &Index) const =0
virtual UObject * GetMutableDependency(const UClass *DependencyClass)=0
virtual FQueryResult RunSubquery(int32 SubqueryIndex)=0
virtual void GetDependencies(TArrayView< UObject * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UClass > > DependencyTypes, TConstArrayView< EQueryAccessType > AccessTypes)=0
virtual FQueryResult RunSubquery(int32 SubqueryIndex, RowHandle Row, SubqueryCallbackRef Callback)=0
Definition TypedElementQueryStorageInterfaces.h:381
virtual ~ISubqueryContext()=default