MCRO
C++23 utilities for Unreal Engine.
Loading...
Searching...
No Matches
Threading.h File Reference
#include "CoreMinimal.h"
#include "Mcro/FunctionTraits.h"
#include "Mcro/SharedObjects.h"

Go to the source code of this file.

Namespaces

namespace  Mcro
 
namespace  Mcro::Threading
 
namespace  Mcro::Threading::Detail
 

Functions

MCRO_API bool Mcro::Threading::IsInThread (ENamedThreads::Type threadName)
 
MCRO_API auto Mcro::Threading::Detail::GetThreadCheck (ENamedThreads::Type threadName) -> bool(*)()
 
template<CFunctionLike When>
requires (TFunction_ArgCount<When> == 0)
void Mcro::Threading::Detail::RunInThreadBoilerplate (ENamedThreads::Type threadName, TUniqueFunction< void()> &&func, When &&when)
 
template<CFunctionLike When>
requires (TFunction_ArgCount<When> == 0)
void Mcro::Threading::Detail::EnqueueRenderCommandBoilerplate (TUniqueFunction< void(FRHICommandListImmediate &)> &&func, When &&when)
 
template<CFunctorObject Function, typename Result = TFunction_Return<Function>, CFunctionLike When>
requires ( TFunction_ArgCount<Function> == 0 && TFunction_ArgCount<When> == 0 )
TFuture< Result > Mcro::Threading::Detail::PromiseInThreadBoilerplate (ENamedThreads::Type threadName, Function &&func, When &&when)
 
template<CFunctorObject Function, typename Result = TFunction_Return<Function>, CFunctionLike When>
requires ( TFunction_ArgCount<Function> == 1 && CSameAs<FRHICommandListImmediate&, TFunction_Arg<Function, 0>> && TFunction_ArgCount<When> == 0 )
TFuture< Result > Mcro::Threading::Detail::EnqueueRenderPromiseBoilerplate (ENamedThreads::Type threadName, Function &&func, When &&when)
 
MCRO_API void Mcro::Threading::RunInThread (ENamedThreads::Type threadName, TUniqueFunction< void()> &&func)
 
MCRO_API void Mcro::Threading::RunInThread (ENamedThreads::Type threadName, const UObject *boundToObject, TUniqueFunction< void()> &&func)
 
MCRO_API void Mcro::Threading::RunInThread (ENamedThreads::Type threadName, const FWeakObjectPtr &boundToObject, TUniqueFunction< void()> &&func)
 
MCRO_API void Mcro::Threading::RunInGameThread (TUniqueFunction< void()> &&func)
 
MCRO_API void Mcro::Threading::RunInGameThread (const UObject *boundToObject, TUniqueFunction< void()> &&func)
 
MCRO_API void Mcro::Threading::RunInGameThread (const FWeakObjectPtr &boundToObject, TUniqueFunction< void()> &&func)
 
MCRO_API void Mcro::Threading::EnqueueRenderCommand (TUniqueFunction< void(FRHICommandListImmediate &)> &&func)
 
MCRO_API void Mcro::Threading::EnqueueRenderCommand (const UObject *boundToObject, TUniqueFunction< void(FRHICommandListImmediate &)> &&func)
 
MCRO_API void Mcro::Threading::EnqueueRenderCommand (const FWeakObjectPtr &boundToObject, TUniqueFunction< void(FRHICommandListImmediate &)> &&func)
 
template<CSharedOrWeak Object>
void Mcro::Threading::RunInThread (ENamedThreads::Type threadName, const Object &boundToObject, TUniqueFunction< void()> &&func)
 
template<CSharedOrWeak Object>
void Mcro::Threading::RunInGameThread (const Object &boundToObject, TUniqueFunction< void()> &&func)
 
template<CSharedOrWeak Object>
void Mcro::Threading::EnqueueRenderCommand (const Object &boundToObject, TUniqueFunction< void(FRHICommandListImmediate &)> &&func)
 
template<CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires (TFunction_ArgCount<Function> == 0)
TFuture< Result > Mcro::Threading::PromiseInThread (ENamedThreads::Type threadName, Function &&func)
 
template<CSharedOrWeak Object, CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires (TFunction_ArgCount<Function> == 0)
TFuture< Result > Mcro::Threading::PromiseInThread (ENamedThreads::Type threadName, const Object &boundToObject, Function &&func)
 
template<CUObject Object, CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires (TFunction_ArgCount<Function> == 0)
TFuture< Result > Mcro::Threading::PromiseInThread (ENamedThreads::Type threadName, const Object *boundToObject, Function &&func)
 
template<CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires (TFunction_ArgCount<Function> == 0)
TFuture< Result > Mcro::Threading::PromiseInGameThread (Function &&func)
 
template<CSharedOrWeak Object, CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires (TFunction_ArgCount<Function> == 0)
TFuture< Result > Mcro::Threading::PromiseInGameThread (const Object &boundToObject, Function &&func)
 
template<CUObject Object, CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires (TFunction_ArgCount<Function> == 0)
TFuture< Result > Mcro::Threading::PromiseInGameThread (const Object *boundToObject, Function &&func)
 
template<CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires ( TFunction_ArgCount<Function> == 1 && CSameAs<FRHICommandListImmediate&, TFunction_Arg<Function, 0>> )
TFuture< Result > Mcro::Threading::EnqueueRenderPromise (Function &&func)
 
template<CSharedOrWeak Object, CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires ( TFunction_ArgCount<Function> == 1 && CSameAs<FRHICommandListImmediate&, TFunction_Arg<Function, 0>> )
TFuture< Result > Mcro::Threading::EnqueueRenderPromise (const Object &boundToObject, Function &&func)
 
template<CUObject Object, CFunctorObject Function, typename Result = TFunction_Return<Function>>
requires ( TFunction_ArgCount<Function> == 1 && CSameAs<FRHICommandListImmediate&, TFunction_Arg<Function, 0>> )
TFuture< Result > Mcro::Threading::EnqueueRenderPromise (const Object *boundToObject, Function &&func)
 

Detailed Description

Author
David Mórász
Date
2025

Definition in file Threading.h.