23 if constexpr (std::is_same_v<Target, ArgsCurrent>)
33 template<
typename Type>
36 using BaseType =
typename std::remove_reference_t<Type>;
37 if constexpr (std::is_const_v<BaseType>)
47 template<
typename Type>
50 using BaseType =
typename std::remove_reference_t<Type>;
54 if constexpr (SubsystemTraits::RequiresGameThread())
58 if constexpr (SubsystemTraits::IsHotReloadable())
62 if constexpr (std::is_const_v<BaseType>)
75 template<
typename... TargetTypes>
78 ReadOnly({ TargetTypes::StaticClass()... });
82 template<
typename... TargetTypes>
85 ReadWrite({ TargetTypes::StaticClass()... });
94 template<TColumnType ColumnType>
100 template<TColumnType ColumnType>
106 template<TColumnType ColumnType>
238 template<
typename... Dependencies>
245 template<
typename... Dependencies>
248 Query.DependencyTypes.Reserve(
sizeof...(Dependencies));
249 Query.DependencyFlags.Reserve(
sizeof...(Dependencies));
251 (
Query.DependencyTypes.Emplace(Dependencies::StaticClass()), ... );
252 (
Query.DependencyFlags.Emplace(Private::GetDependencyFlags<Dependencies>()), ... );
254 Query.CachedDependencies.AddDefaulted(
sizeof...(Dependencies));
257 template<
typename... Dependencies>
258 template<
typename Dependency>
262 constexpr uint32 Index = Private::GetVarArgIndex<std::remove_const_t<Dependency>, Dependencies...>();
263 static_assert(
Index <
sizeof...(Dependencies),
"Requested dependency isn't part of the query context cache.");
264 return *
static_cast<Dependency*
>(Description.CachedDependencies[
Index].Get());
267 template<
typename... Dependencies>
268 template<
typename Dependency>
273 if constexpr (
Index <
sizeof...(Dependencies))
275 return *
static_cast<Dependency*
>(Description.CachedDependencies[
Index].Get());
279 constexpr uint32 ConstIndex = Private::GetVarArgIndex<std::add_const_t<Dependency>, Dependencies...>();
280 static_assert(
ConstIndex <
sizeof...(Dependencies),
"Requested dependency isn't part of the query context cache.");
296 template<
typename Context>
305 template<
typename Source,
typename Target>
310 template<
typename... Columns>
313 if constexpr (
sizeof...(Columns) > 0)
315 return (std::is_reference_v<Columns> && ...);
323 template<
typename... Columns>
326 if constexpr (
sizeof...(Columns) > 0)
328 return (std::is_pointer_v<Columns> && ...);
336 template<
typename Column>
339 template<
typename Column>
342 template<
typename Column>
346 if constexpr (std::is_reference_v<Column>)
348 using BaseType =
typename std::remove_const_t<std::remove_reference_t<Column>>;
351 else if constexpr (std::is_pointer_v<Column>)
353 using BaseType =
typename std::remove_const_t<std::remove_pointer_t<Column>>;
362 template<
typename Column>
368 template<
typename RowType>
371 template<
typename RowType,
typename... Columns>
374 if constexpr (std::is_pointer_v<RowType> && std::is_const_v<std::remove_pointer_t<RowType>>)
384 template<
typename T>
concept IsFunctor =
requires{ &T::operator(); };
389 std::tuple<BaseColumnType<ColumnTypes>*...>
Columns;
392 template<
typename Column>
399 return Entry == ColumnType;
400 }); Match !=
nullptr)
402 size_t Index = Match - Description.SelectionTypes.GetData();
405 if (std::is_const_v<Column>)
412 TEXT(
"Provided query callback couldn't be bound because target read-only column of type '%s' is bound to a mutable reference."),
425 TEXT(
"Provided query callback couldn't be bound because target query doesn't contain a column of type '%s'."),
443 Description.SelectionTypes.GetData(), Description.SelectionAccessTypes.GetData());
452 template<SourceQueryContext SourceContext,
bool Val
idateColumns>
459 template<SourceQueryContext SourceType,
typename TargetType>
471 template<SourceQueryContext SourceType>
481 template<SourceQueryContext SourceType>
505 template<
typename CallerType>
511 if constexpr (
sizeof...(Args) > 0)
513 std::apply([
this, Rows = Rows.GetData(), &Caller](
auto&&... Column)
515 Caller(this->ContextWrapper, Rows, Column...);
527 if constexpr (
sizeof...(Args) > 0)
529 std::apply([
this, Row, &Caller](
auto&&... Column)
544 template<SourceQueryContext SourceContext,
bool ValidateColumns,
typename TargetContext,
typename... Args>
558 template<
typename CallerType>
561 if constexpr (
sizeof...(Args) > 0)
566 [
this, &Caller](
auto&&... Column)
601 template<
typename CallerType>
607 if constexpr (
sizeof...(Columns) > 0)
609 std::apply([Rows = Rows.GetData(), &Caller](
auto&&... Column)
611 Caller(Rows, Column...);
616 Caller(Rows.GetData());
623 if constexpr (
sizeof...(Columns) > 0)
625 std::apply([Row, &Caller](
auto&&... Column)
627 Caller(Row, *Column...);
640 template<SourceQueryContext SourceContext,
bool ValidateColumns,
typename... Args>
649 template<
typename CallerType>
652 if constexpr (
sizeof...(Args) > 0)
657 [&Caller](
auto&&... Column)
687 template<SourceQueryContext SourceContext,
bool ValidateColumns,
typename... Args>
724 template<SourceQueryContext SourceContext,
bool ValidateColumns,
typename... Args>
726 void (*Callback)(Args...))
734 template<SourceQueryContext SourceContext,
bool ValidateColumns,
typename Class,
typename... Args>
736 void (
Class::*Callback)(Args...))
744 template<SourceQueryContext SourceContext,
bool ValidateColumns,
typename Class,
typename... Args>
746 void (
Class::*Callback)(Args...) const)
754 template<SourceQueryContext SourceContext,
bool ValidateColumns,
typename Functor,
typename Class,
typename... Args>
756 void (
Class::*Callback)(Args...) const)
764 template<SourceQueryContext SourceContext,
bool ValidateColumns,
typename Functor,
typename Class,
typename... Args>
766 void (
Class::*Callback)(Args...))
774 template<SourceQueryContext SourceContext,
bool Val
idateColumns,
typename Functor>
779 std::forward<Functor>(Callback),
780 &std::remove_cv_t<std::remove_reference_t<Functor>>::operator());
784 template<
bool ValidateColumns, SourceQueryContext SourceContext,
typename... Args>
791 template<
bool ValidateColumns, SourceQueryContext SourceContext,
typename Class,
typename... Args>
793 Class* Target,
void (
Class::* Callback)(Args...))
798 template<
bool ValidateColumns, SourceQueryContext SourceContext,
typename Class,
typename... Args>
800 Class* Target,
void (
Class::* Callback)(Args...) const)
805 template<
bool ValidateColumns, SourceQueryContext SourceContext,
typename Functor,
typename Class,
typename... Args>
807 const Functor& CallbackObject,
void (
Class::* Callback)(Args...) const)
812 template<
bool ValidateColumns, SourceQueryContext SourceContext,
typename Functor,
typename Class,
typename... Args>
814 const Functor& CallbackObject,
void (
Class::* Callback)(Args...))
819 template<
bool Val
idateColumns, SourceQueryContext SourceContext,
typename Functor>
821 const Functor& Callback)
827 template<
typename Arg>
830 if constexpr (std::is_const_v<BaseColumnType<Arg>>)
845 BaseType::Register(
Query);
849 template<SourceQueryContext SourceContext,
typename... Args>
858 template<SourceQueryContext SourceContext>
864 template<SourceQueryContext SourceContext,
typename Arg0>
881 template<SourceQueryContext SourceContext,
typename Arg0,
typename Arg1,
typename... Args>
906 template<SourceQueryContext SourceContext,
typename... Args>
912 template<SourceQueryContext SourceContext,
typename Class,
typename... Args>
918 template<SourceQueryContext SourceContext,
typename Class,
typename... Args>
924 template<SourceQueryContext SourceContext,
typename Functor>
930 template<SourceQueryContext SourceContext,
typename... Args>
934 static_assert(
HasValidColumnTypes,
"One or more of the provided columns is not compatible with query callback.");
946 constexpr static bool Arg0IsValid = (Arg0IsContext || Arg0IsValidRowHandle || Arg0IsArgument);
948 static_assert(!Arg0IsRowHandle || Arg0IsValidRowHandle,
"Row handles need to taken by value when the columns are requested by "
949 "reference or by const pointer if the columns are taken by reference.");
950 static_assert(Arg0IsValid,
"The first provided argument has to be a reference to a compatible query reference, a row handle"
951 " or a (const) reference/pointer to a column.");
954 static_assert(
HasValidColumnTypes,
"One or more of the provided columns is not compatible with query callback.");
959 template<
SourceQueryContext SourceContext,
typename Arg0,
typename Arg1,
typename... Args>
966 constexpr static bool Arg0IsValid = (Arg0IsContext || Arg0IsValidRowHandle || Arg0IsArgument);
968 static_assert(!Arg0IsRowHandle || Arg0IsValidRowHandle,
"Row handles need to taken by value when the columns are requested by "
969 "reference or by const pointer if the columns are taken by reference.");
970 static_assert(Arg0IsValid,
"The first argument to a query callback has to be a reference to a compatible query reference, a "
971 "row handle or a (const) reference/pointer to a column.");
976 constexpr static bool Arg1IsValid = (Arg1IsValidRowHandle || Arg1IsArgument);
978 static_assert(!Arg1IsRowHandle || Arg1IsValidRowHandle,
"Row handles need to taken by value when the columns are requested by "
979 "reference or by const pointer if the columns are taken by reference.");
980 static_assert(Arg1IsValid,
"The second argument to a query callback has to be a row handle or a (const) reference/pointer "
984 static_assert(
HasValidColumnTypes,
"One or more of the provided columns is not compatible with query callback.");
989 template<SourceQueryContext SourceContext>
992 constexpr static bool Value =
false;
995 template<SourceQueryContext SourceContext,
typename T>
998 constexpr static bool Value =
false;
1053 switch (Observer.
Event)
1085 template<
typename CallbackType,
typename Function>
1090 "classes derived from FQueryCallbackType.");
1092 R
"(The function provided to the Query Builder's Select call wasn't invocable or doesn't contain a supported combination of arguments.
1093The following options are supported:
1094- void([const]Column&...)
1095- void(RowHandle, [const]Column&...)
1096- void(<Context>&, [const]Column&...)
1097- void(<Context>&, RowHandle, [const]Column&...)
1098- void(<Context>&, [const]Column*...)
1099- void(<Context>&, const RowHandle*, [const]Column*...)
1100Where <Context> is IQueryContext or FCachedQueryContext<...>
1101e.g. void(FCachedQueryContext<Subsystem1, const Subsystem2>& Context, RowHandle Row, ColumnType0& ColumnA, const ColumnType1& ColumnB) {...}
1105 Query.Callback.Name = Name;
1109 template<
typename CallbackType,
typename Function>
1115 Private::BindQueryFunction<IQueryContext, ValidateColumns>(
Query.Callback.Function, std::forward<Function>(Callback));
1118 template<
typename CallbackType,
typename Class,
typename Function>
1124 Private::BindQueryFunction<IQueryContext, ValidateColumns>(
Query.Callback.Function,
Instance, Callback);
1130 ReadOnly({ TargetTypes::StaticStruct()... });
1141 template<TDynamicColumnTemplate Target>
1155 ReadWrite({ TargetTypes::StaticStruct()... });
1159 template<TDynamicColumnTemplate Target>
1177 All({ TargetTypes::StaticStruct()... });
1184 Any({ TargetTypes::StaticStruct()... });
1188 template <TDynamicColumnTemplate DynamicColumnTemplate>
1201 None({ TargetTypes::StaticStruct()... });
1205 template<TValueTagType>
1211 template<TValueTagType>
1217 template <TDynamicColumnTemplate DynamicColumnTemplate>
1227 template <TDynamicColumnTemplate DynamicColumnTemplate>
1237 template <TEnumType EnumT>
1243 template <TEnumType EnumT>
1249 template<auto Value, TEnumType EnumT = decltype(Value)>
1258 template<
typename Function>
1261 static_assert(Private::IsValidSelectFunctionSignature<IDirectQueryContext, Function>(),
1262 R
"(The function provided to the Query Builder's CreateDirectQueryCallbackBinding call wasn't invocable or doesn't contain a supported combination of arguments.
1263The following options are supported:
1264- void([const]Column&...)
1265- void(RowHandle, [const]Column&...)
1266- void(<Context>&, [const]Column&...)
1267- void(<Context>&, RowHandle, [const]Column&...)
1268- void(<Context>&, [const]Column*...)
1269- void(<Context>&, const RowHandle*, [const]Column*...)
1270Where <Context> is IDirectQueryContext
1271e.g. void(IDirectQueryContext& Context, RowHandle Row, ColumnType0& ColumnA, const ColumnType1& ColumnB) {...}
1279 Private::CallQueryFunction<ValidateColumns>(Description,
Context, Callback);
1283 template<
typename Function>
1286 static_assert(Private::IsValidSelectFunctionSignature<ISubqueryContext, Function>(),
1287 R
"(The function provided to the Query Builder's CreateSubqueryCallbackBinding call wasn't invocable or doesn't contain a supported combination of arguments.
1288The following options are supported:
1289- void([const]Column&...)
1290- void(RowHandle, [const]Column&...)
1291- void(<Context>&, [const]Column&...)
1292- void(<Context>&, RowHandle, [const]Column&...)
1293- void(<Context>&, [const]Column*...)
1294- void(<Context>&, const RowHandle*, [const]Column*...)
1295Where <Context> is ISubqueryContext
1296e.g. void(ISubqueryContext& Context, RowHandle Row, ColumnType0& ColumnA, const ColumnType1& ColumnB) {...}
1304 Private::CallQueryFunction<ValidateColumns>(Description,
Context, Callback);
1309#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_7
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr void EnumAddFlags(Enum &Flags, Enum FlagsToAdd)
Definition EnumClassFlags.h:91
Columns EContextCapabilityFlags::SupportsBatch TConstArrayView< RowHandle >
Definition TypedElementQueryCapabilities.inl:40
TConstArrayView< const UScriptStruct * > TConstArrayView< const UScriptStruct * >
Definition TypedElementQueryCapabilities.inl:16
Definition NameTypes.h:617
FORCEINLINE bool IsNone() const
Definition NameTypes.h:827
Definition ArrayView.h:139
Definition AssetRegistryState.h:50
Definition CommonTypes.h:57
Definition TypedElementQueryBuilder.h:120
FDependency & ReadOnly()
Definition TypedElementQueryBuilder.inl:76
FDependency & ReadWrite()
Definition TypedElementQueryBuilder.inl:83
Definition TypedElementQueryBuilder.h:147
FSimpleQuery & All()
Definition TypedElementQueryBuilder.inl:1175
FSimpleQuery & None()
Definition TypedElementQueryBuilder.inl:1199
FSimpleQuery & Any()
Definition TypedElementQueryBuilder.inl:1182
Definition TypedElementQueryBuilder.h:378
Select & ReadWrite()
Definition TypedElementQueryBuilder.inl:1153
TYPEDELEMENTFRAMEWORK_API Select()
Definition TypedElementQueryBuilder.cpp:417
Select & ReadOnly()
Definition TypedElementQueryBuilder.inl:1128
UE_FORCEINLINE_HINT FString GetName() const
Definition UObjectBaseUtility.h:439
Definition TypedElementQueryBuilder.inl:291
Definition TypedElementQueryBuilder.inl:306
Definition TypedElementQueryBuilder.inl:384
Definition TypedElementQueryBuilder.inl:369
Definition TypedElementQueryBuilder.inl:297
Definition CommonTypes.h:101
Definition CommonTypes.h:95
Definition CommonTypes.h:39
Definition CommonTypes.h:42
Definition CommonTypes.h:36
Definition OverriddenPropertySet.cpp:45
void CallQueryFunction(const FQueryDescription &Description, SourceContext &Context, QueryCallback &Function, void(*Callback)(Args...))
Definition TypedElementQueryBuilder.inl:785
void BindQueryFunction_Expand(QueryCallback &Function, Functor &&CallbackObject, void(Class::*Callback)(Args...) const)
Definition TypedElementQueryBuilder.inl:755
constexpr EQueryAccessType GetAccessType()
Definition TypedElementQueryBuilder.inl:34
std::remove_cv_t< BaseColumnType< Column > > UndecoratedColumnType
Definition TypedElementQueryBuilder.inl:340
void RegisterFunctionArguments(FQueryDescription &Query, Select &Target, void(*)(Args...))
Definition TypedElementQueryBuilder.inl:907
void AddColumnToSelect(Select &Target)
Definition TypedElementQueryBuilder.inl:828
void CallQueryFunction_Expand(const FQueryDescription &Description, SourceContext &Context, const Functor &CallbackObject, void(Class::*Callback)(Args...) const)
Definition TypedElementQueryBuilder.inl:806
constexpr uint32 GetVarArgIndex()
Definition TypedElementQueryBuilder.inl:21
void RegisterDependencies(FQueryDescription &Query)
Definition TypedElementQueryBuilder.inl:840
void BindQueryFunction(QueryCallback &Function, void(*Callback)(Args...))
Definition TypedElementQueryBuilder.inl:725
constexpr bool IsRowTypeCompatibleWithColumns()
Definition TypedElementQueryBuilder.inl:372
constexpr bool IsValidSelectFunctionSignature()
Definition TypedElementQueryBuilder.inl:1019
constexpr bool AreAllColumnsReferences()
Definition TypedElementQueryBuilder.inl:311
const UScriptStruct * GetColumnType()
Definition TypedElementQueryBuilder.inl:363
constexpr bool IsValidColumnType()
Definition TypedElementQueryBuilder.inl:343
constexpr bool AreAllColumnsPointers()
Definition TypedElementQueryBuilder.inl:324
std::remove_pointer_t< std::remove_reference_t< Column > > BaseColumnType
Definition TypedElementQueryBuilder.inl:337
constexpr EQueryDependencyFlags GetDependencyFlags()
Definition TypedElementQueryBuilder.inl:48
void PrepareForQueryBinding(FQueryDescription &Query, const FProcessor &Processor)
Definition TypedElementQueryBuilder.inl:1031
Definition Conditions.cpp:11
EOptional
Definition TypedElementQueryBuilder.h:114
const UScriptStruct * Type(FTopLevelAssetPath Name)
Definition TypedElementQueryBuilder.cpp:15
SubqueryCallback CreateSubqueryCallbackBinding(Function &&Callback)
Definition TypedElementQueryBuilder.inl:1274
FSimpleQuery & All()
Definition TypedElementQueryBuilder.inl:1250
DirectQueryCallback CreateDirectQueryCallbackBinding(Function &&Callback)
Definition TypedElementQueryBuilder.inl:1259
Definition CommonTypes.cpp:10
EQueryDependencyFlags
Definition Types.h:103
uint64 QueryHandle
Definition Handles.h:18
uint64 RowHandle
Definition Handles.h:15
EQueryAccessType
Definition Types.h:91
U16 Index
Definition radfft.cpp:71
Definition UnrealTypeTraits.h:40
T Type
Definition RemoveReference.h:10
Definition WeakObjectPtrTemplates.h:25
Definition CommonTypes.h:72
const UScriptStruct * TemplateType
Definition CommonTypes.h:73
Definition Description.h:32
Column * GetMutableColumn()
Definition TypedElementQueryStorageInterfaces.h:468
const Column * GetColumn() const
Definition TypedElementQueryStorageInterfaces.h:455
void PushCommand(T CommandContext)
Definition TypedElementQueryStorageInterfaces.h:685
virtual void GetColumnsUnguarded(int32 TypeCount, char **RetrievedAddresses, const TWeakObjectPtr< const UScriptStruct > *ColumnTypes, const EQueryAccessType *AccessTypes)=0
virtual uint32 GetRowCount() const =0
virtual TConstArrayView< RowHandle > GetRowHandles() const =0
virtual void GetColumns(TArrayView< char * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UScriptStruct > > ColumnTypes, TConstArrayView< EQueryAccessType > AccessTypes)=0
bool HasColumn() const
Definition TypedElementQueryStorageInterfaces.h:481
void RemoveColumns(RowHandle Row)
Definition TypedElementQueryStorageInterfaces.h:673
bool HasColumn(const FName &Identifier) const
Definition TypedElementQueryStorageInterfaces.h:549
DynamicColumnTemplate * GetMutableColumn(const FName &Identifier)
Definition TypedElementQueryStorageInterfaces.h:531
virtual void RemoveRows(TConstArrayView< RowHandle > Rows)=0
virtual void RemoveRow(RowHandle Row)=0
void AddColumns(RowHandle Row)
Definition TypedElementQueryStorageInterfaces.h:661
const DynamicColumnTemplate * GetColumn(const FName &Identifier) const
Definition TypedElementQueryStorageInterfaces.h:513
Definition TypedElementQueryStorageInterfaces.h:373
Definition TypedElementQueryStorageInterfaces.h:390
virtual FQueryResult RunQuery(QueryHandle Query)=0
virtual const UObject * GetDependency(const UClass *DependencyClass)=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
Definition TypedElementQueryStorageInterfaces.h:381
Dependency & GetCachedMutableDependency()
Definition TypedElementQueryBuilder.inl:259
FCachedQueryContext(const FQueryDescription &InDescription, IQueryContext &InParentContext)
Definition TypedElementQueryBuilder.inl:239
const Dependency & GetCachedDependency() const
Definition TypedElementQueryBuilder.inl:269
static void Register(FQueryDescription &Query)
Definition TypedElementQueryBuilder.inl:246
Definition TypedElementQueryBuilder.h:255
FObserver & SetMonitoredColumn()
Definition TypedElementQueryBuilder.inl:107
EExecutionMode ExecutionMode
Definition TypedElementQueryBuilder.h:279
static FObserver OnRemove()
Definition TypedElementQueryBuilder.inl:101
EEvent Event
Definition TypedElementQueryBuilder.h:277
FName ActivationName
Definition TypedElementQueryBuilder.h:278
static FObserver OnAdd()
Definition TypedElementQueryBuilder.inl:95
const UScriptStruct * Monitor
Definition TypedElementQueryBuilder.h:276
Definition TypedElementQueryBuilder.h:283
Definition TypedElementQueryBuilder.h:235
Definition TypedElementQueryBuilder.h:305
IQueryContext & ParentContext
Definition TypedElementQueryBuilder.h:343
void GetDependencies(TArrayView< UObject * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UClass > > SubsystemTypes, TConstArrayView< EQueryAccessType > AccessTypes) override
Definition TypedElementQueryBuilder.inl:161
void GetColumnsUnguarded(int32 TypeCount, char **RetrievedAddresses, const TWeakObjectPtr< const UScriptStruct > *ColumnTypes, const EQueryAccessType *AccessTypes) override
Definition TypedElementQueryBuilder.inl:140
void GetColumns(TArrayView< char * > RetrievedAddresses, TConstArrayView< TWeakObjectPtr< const UScriptStruct > > ColumnTypes, TConstArrayView< EQueryAccessType > AccessTypes) override
Definition TypedElementQueryBuilder.inl:134
void RemoveRow(RowHandle Row) override
Definition TypedElementQueryBuilder.inl:177
const UObject * GetDependency(const UClass *DependencyClass) override
Definition TypedElementQueryBuilder.inl:156
FQueryResult RunQuery(QueryHandle Query) override
Definition TypedElementQueryBuilder.inl:207
UObject * GetMutableDependency(const UClass *DependencyClass) override
Definition TypedElementQueryBuilder.inl:151
TConstArrayView< RowHandle > GetRowHandles() const override
Definition TypedElementQueryBuilder.inl:172
FQueryResult RunSubquery(int32 SubqueryIndex) override
Definition TypedElementQueryBuilder.inl:212
void RemoveRows(TConstArrayView< RowHandle > Rows) override
Definition TypedElementQueryBuilder.inl:182
FQueryContextForwarder(const FQueryDescription &InDescription, IQueryContext &InParentContext)
Definition TypedElementQueryBuilder.inl:117
void AddColumns(RowHandle Row, TConstArrayView< const UScriptStruct * > ColumnTypes) override
Definition TypedElementQueryBuilder.inl:187
uint32 GetRowCount() const override
Definition TypedElementQueryBuilder.inl:167
void PushCommand(void(*CommandFunction)(void *), void *CommandData) override
Definition TypedElementQueryBuilder.inl:229
void RemoveColumns(RowHandle Row, TConstArrayView< const UScriptStruct * > ColumnTypes) override
Definition TypedElementQueryBuilder.inl:197
Definition TypedElementQueryBuilder.inl:642
void Call(SourceContext &Context, const CallerType &Caller)
Definition TypedElementQueryBuilder.inl:650
FColumnsFunction(const FQueryDescription &Description, SourceContext &Context)
Definition TypedElementQueryBuilder.inl:645
Definition TypedElementQueryBuilder.inl:549
void Call(SourceContext &Context, const CallerType &Caller)
Definition TypedElementQueryBuilder.inl:559
FContextColumnsFunction(const FQueryDescription &Description, SourceContext &Context)
Definition TypedElementQueryBuilder.inl:553
FContextInfo(const FQueryDescription &Description, SourceType &Context)
Definition TypedElementQueryBuilder.inl:486
SourceType & ContextWrapper
Definition TypedElementQueryBuilder.inl:484
FContextInfo(const FQueryDescription &Description, SourceType &Context)
Definition TypedElementQueryBuilder.inl:476
const SourceType & ContextWrapper
Definition TypedElementQueryBuilder.inl:474
Definition TypedElementQueryBuilder.inl:462
std::remove_reference_t< TargetType > BaseContextType
Definition TypedElementQueryBuilder.inl:463
BaseContextType ContextWrapper
Definition TypedElementQueryBuilder.inl:464
FContextInfo(const FQueryDescription &Description, SourceType &Context)
Definition TypedElementQueryBuilder.inl:466
Definition TypedElementQueryBuilder.inl:496
FContextRowHandleColumnsFunction(const FQueryDescription &Description, SourceContext &Context)
Definition TypedElementQueryBuilder.inl:500
void Call(SourceContext &Context, const CallerType &Caller)
Definition TypedElementQueryBuilder.inl:506
FFunctionColumnInfo(const FQueryDescription &, SourceContext &)
Definition TypedElementQueryBuilder.inl:455
Definition TypedElementQueryBuilder.inl:388
FFunctionColumnInfo(const FQueryDescription &Description, SourceContext &Context)
Definition TypedElementQueryBuilder.inl:431
std::tuple< BaseColumnType< ColumnTypes > *... > Columns
Definition TypedElementQueryBuilder.inl:389
static constexpr bool bArePointerColumns
Definition TypedElementQueryBuilder.inl:390
bool CheckValidity(const FQueryDescription &Description)
Definition TypedElementQueryBuilder.inl:393
Definition TypedElementQueryBuilder.inl:689
Definition TypedElementQueryBuilder.inl:716
FFunctionInfo(const FQueryDescription &Description, SourceContext &Context)
Definition TypedElementQueryBuilder.inl:719
typename FFunctionInfoHelper< SourceContext, ValidateColumns, Args... >::BaseClass Super
Definition TypedElementQueryBuilder.inl:717
Definition TypedElementQueryBuilder.inl:594
void Call(SourceContext &Context, const CallerType &Caller)
Definition TypedElementQueryBuilder.inl:602
FRowHandleColumnsFunction(const FQueryDescription &Description, SourceContext &Context)
Definition TypedElementQueryBuilder.inl:597
Definition TypedElementQueryBuilder.inl:932
static constexpr bool HasValidColumnTypes
Definition TypedElementQueryBuilder.inl:933
static constexpr bool Value
Definition TypedElementQueryBuilder.inl:936
Definition TypedElementQueryBuilder.inl:997
static constexpr bool Value
Definition TypedElementQueryBuilder.inl:998
static void Register(FQueryDescription &Query, Select &Target)
Definition TypedElementQueryBuilder.inl:884
static void Register(FQueryDescription &Query, Select &Target)
Definition TypedElementQueryBuilder.inl:867
static void Register(FQueryDescription &, Select &)
Definition TypedElementQueryBuilder.inl:861
Definition TypedElementQueryBuilder.inl:851
void Register(FQueryDescription &, Select &Target)
Definition TypedElementQueryBuilder.inl:852
Definition TypedElementDataStorageCompatibilityInterface.h:148