21 template<
typename T>
concept ContextType = std::is_base_of_v<FQueryContext, T>;
46 operator T& ()
const {
return *
Value; }
56 static_assert(!std::is_same_v<T, void>,
"Unsupported argument type for query callback.");
87 static_assert(std::is_reference_v<T>,
"Results can only be accessed by reference.");
88 static_assert(!std::is_const_v<T>,
"Results requires write access to function.");
102 static_assert(!std::is_reference_v<T> && !std::is_pointer_v<T>,
"The contexts can only be passed in by value.");
121 static_assert(!std::is_pointer_v<T>,
"Pointers to columns to work with batches are no longer supported. Use TBatch instead.");
122 static_assert(std::is_reference_v<T>,
"Columns can only be accessed by reference.");
124 static constexpr bool bIsConst = std::is_const_v<UnreferencedType<T>>;
140 static constexpr bool bIsConst = std::is_const_v<UnreferencedType<T>>;
153 template<
typename T>
requires std::is_same_v<FoundationalType<T>,
EFlowControl>
156 static_assert(std::is_reference_v<T>,
"Flow control can only be accessed by reference.");
157 static_assert(!std::is_const_v<T>,
"Flow control requires write access to function.");
174 std::conditional_t<Index < 0, TArgument<void>,
175 std::conditional_t<Index == 0, TArgument<Front>,
179 template<
int32 Index>
188 template<
typename... Args>
192 template<EArgumentFlags TypeFlag>
193 constexpr static int32 FirstIndexOfType();
195 template<EArgumentFlags Flags>
196 constexpr static int32 CountFlags();
198 template<EArgumentFlags Flags>
205 static_assert(
bIsSingle ||
bIsBatch,
"One or more query callback arguments for single or batch processing were mixed.");
233 template<
int32 Index,
typename T>
235 template<
int32 Index>
237 template<
int32 Index>
239 template<
typename ArgumentType>
240 static void IncrementColumnUnguarded(
ArgumentList& Arguments);
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
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
TConstArrayView< const UScriptStruct * > TConstArrayView< const UScriptStruct * >
Definition TypedElementQueryCapabilities.inl:16
Definition TypedElementQueryFunctionArgumentTypes.h:59
Definition TypedElementQueryFunctionArguments.h:21
Definition CommonTypes.h:101
Definition TypedElementQueryBuilder.cpp:566
std::remove_cv_t< UnreferencedType< T > > FoundationalType
Definition TypedElementQueryFunctionArguments.h:20
std::remove_reference_t< std::remove_pointer_t< T > > UnreferencedType
Definition TypedElementQueryFunctionArguments.h:18
typename TIndexToArgInfoImpl< Index, Args... >::Type TIndexToArgInfo
Definition TypedElementQueryFunctionArguments.h:186
EArgumentFlags
Definition TypedElementQueryFunctionArguments.h:24
const UScriptStruct * Type(FTopLevelAssetPath Name)
Definition TypedElementQueryBuilder.cpp:15
EFlowControl
Definition TypedElementQueryFunctionArgumentTypes.h:32
U16 Index
Definition radfft.cpp:71
Definition TypedElementQueryContract.h:113
T BaseType
Definition TypedElementQueryFunctionArguments.h:81
Definition TypedElementQueryFunctionArguments.h:73
void BaseType
Definition TypedElementQueryFunctionArguments.h:75
static constexpr bool bIsValid
Definition TypedElementQueryFunctionArguments.h:74
Definition TypedElementQueryFunctionArguments.h:190
static void SetContext(ArgumentList &Arguments, IContextContract &Contract)
Definition TypedElementQueryFunctionArguments.inl:65
static void SetConstColumns(ArgumentList &Arguments, TConstArrayView< const void * > Columns)
Definition TypedElementQueryFunctionArguments.inl:151
typename TIndexToArgInfo< ResultIndex, Args... >::BaseType ResultType
Definition TypedElementQueryFunctionArguments.h:210
static void IncrementColumns(ArgumentList &Arguments)
Definition TypedElementQueryFunctionArguments.inl:177
static constexpr bool bIsBatch
Definition TypedElementQueryFunctionArguments.h:203
static void SetMutableColumns(ArgumentList &Arguments, TConstArrayView< void * > Columns)
Definition TypedElementQueryFunctionArguments.inl:164
static TConstArrayView< const UScriptStruct * > ListMutableColumns()
Definition TypedElementQueryFunctionArguments.inl:145
static constexpr int32 FlowIndex
Definition TypedElementQueryFunctionArguments.h:220
static constexpr bool bIsSingle
Definition TypedElementQueryFunctionArguments.h:202
static void SetResult(ArgumentList &Arguments, TResult< T > &Result)
Definition TypedElementQueryFunctionArguments.inl:50
static TConstArrayView< const UScriptStruct * > ListConstColumns()
Definition TypedElementQueryFunctionArguments.inl:139
static constexpr int32 CountMutableColumns()
Definition TypedElementQueryFunctionArguments.inl:101
static constexpr int32 ContextIndex
Definition TypedElementQueryFunctionArguments.h:215
static void SetFlowControl(ArgumentList &Arguments, EFlowControl &FlowControl)
Definition TypedElementQueryFunctionArguments.inl:80
static constexpr int32 CountFlowControls()
Definition TypedElementQueryFunctionArguments.inl:89
static constexpr int32 CountConstColumns()
Definition TypedElementQueryFunctionArguments.inl:95
static constexpr int32 CountResults()
Definition TypedElementQueryFunctionArguments.inl:59
static constexpr int32 CountContexts()
Definition TypedElementQueryFunctionArguments.inl:74
static constexpr int32 ResultIndex
Definition TypedElementQueryFunctionArguments.h:209
T BaseType
Definition TypedElementQueryFunctionArguments.h:146
std::conditional_t< bIsConst, const BaseType *, BaseType * > PointerCastType
Definition TypedElementQueryFunctionArguments.h:149
BaseType ColumnType
Definition TypedElementQueryFunctionArguments.h:148
void * PointerCastType
Definition TypedElementQueryFunctionArguments.h:95
BaseType::Capabilities ContextCapabilities
Definition TypedElementQueryFunctionArguments.h:105
void ColumnType
Definition TypedElementQueryFunctionArguments.h:94
typename ResultTypeInfo< FoundationalType< T > >::BaseType BaseType
Definition TypedElementQueryFunctionArguments.h:92
Definition TypedElementQueryFunctionArguments.h:62
void ColumnType
Definition TypedElementQueryFunctionArguments.h:66
void ArgumentType
Definition TypedElementQueryFunctionArguments.h:65
void PointerCastType
Definition TypedElementQueryFunctionArguments.h:67
void BaseType
Definition TypedElementQueryFunctionArguments.h:64
Definition TypedElementQueryFunctionArguments.h:55
std::conditional_t< Index< 0, TArgument< void >, std::conditional_t< Index==0, TArgument< Front >, typename TIndexToArgInfoImpl< Index - 1, Args... >::Type > > Type
Definition TypedElementQueryFunctionArguments.h:176
Definition TypedElementQueryFunctionArguments.h:168
Definition TypedElementQueryFunctionArguments.h:41
T * Value
Definition TypedElementQueryFunctionArguments.h:49
TPointerForwarder(T *Value)
Definition TypedElementQueryFunctionArguments.h:43
void Increment()
Definition TypedElementQueryFunctionArguments.h:47
TPointerForwarder()=default
TPointerForwarder & operator=(T *InValue)
Definition TypedElementQueryFunctionArguments.h:44
Definition TypedElementQueryFunctionArgumentTypes.h:46