4#include "Containers/Map.h"
11#define UE_API COREUOBJECT_API
93 void SetHasValidated();
101 struct FRWLockWithExclusiveRecursion
112 uint32 LoadWriteLockOwnerThreadIdRelaxed()
const;
113 void StoreWriteLockOwnerThreadId(
uint32 ThreadId, std::memory_order Order = std::memory_order_seq_cst);
116 std::atomic<uint32> WriteLockOwnerThreadId = 0;
117 int32 RecursionCount = 0;
123 std::atomic<bool> bInitialized;
124 std::atomic<EFlags>
Flags;
127 FCoreRedirects::FRedirectTypeMap RedirectTypeMap;
129 FRWLockWithExclusiveRecursion RWLock;
216 return bInitialized.load(std::memory_order_acquire);
229 return Flags.load(std::memory_order_relaxed);
235 return Flags.store(
NewFlags, std::memory_order_relaxed);
241 return bValidatedOnce;
245inline void FCoreRedirectsContext::SetHasValidated()
247 bValidatedOnce =
true;
259 return RedirectTypeMap;
263inline FRedirectionSummary& FCoreRedirectsContext::GetRedirectionSummary()
#define UE_API
Definition CoreRedirectsContext.h:11
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
return true
Definition ExternalRpcRegistry.cpp:601
Definition UnrealString.h.inl:34
@ false
Definition radaudio_common.h:23
Definition CoreRedirectsContext.h:21
UE_API void InitializeContext()
Definition CoreRedirectsContext.cpp:42
EFlags
Definition CoreRedirectsContext.h:23
static UE_API FCoreRedirectsContext & GetThreadContext()
Definition CoreRedirectsContext.cpp:98
FCoreRedirects::FRedirectTypeMap & GetRedirectTypeMap()
Definition CoreRedirectsContext.h:257
UE_API FCoreRedirectsContext()
Definition CoreRedirectsContext.cpp:15
void SetFlags(EFlags Flags)
Definition CoreRedirectsContext.h:233
TMap< FName, ECoreRedirectFlags > & GetConfigKeyMap()
Definition CoreRedirectsContext.h:251
static UE_API void SetThreadContext(FCoreRedirectsContext &NewContext)
Definition CoreRedirectsContext.cpp:104
static UE_API FCoreRedirectsContext & GetGlobalContext()
Definition CoreRedirectsContext.cpp:92
EFlags GetFlags() const
Definition CoreRedirectsContext.h:226
UE_API FCoreRedirectsContext & operator=(const FCoreRedirectsContext &Other)
Definition CoreRedirectsContext.cpp:31
const bool IsInitialized() const
Definition CoreRedirectsContext.h:213
const bool IsInDebugMode() const
Definition CoreRedirectsContext.h:220
const bool HasValidated() const
Definition CoreRedirectsContext.h:239
static COREUOBJECT_API void ValidateAllRedirects()
Definition CoreRedirects.cpp:3074
Definition CoreRedirectsContext.h:142
FCoreRedirectsContext & ContextToRestore
Definition CoreRedirectsContext.h:148
FCoreRedirectsContext ScopeContext
Definition CoreRedirectsContext.h:147
UE_API FScopeCoreRedirectsContext()
Definition CoreRedirectsContext.cpp:110
UE_API ~FScopeCoreRedirectsContext()
Definition CoreRedirectsContext.cpp:125
Definition CoreRedirectsContext.h:156
EInitFlag
Definition CoreRedirectsContext.h:177
bool NeedsUnlock
Definition CoreRedirectsContext.h:187
FScopeCoreRedirectsReadLockedContext(FCoreRedirectsContext &InContext, EInitFlag Unused)
Definition CoreRedirectsContext.h:181
~FScopeCoreRedirectsReadLockedContext()
Definition CoreRedirectsContext.h:165
FCoreRedirectsContext & Context
Definition CoreRedirectsContext.h:186
FCoreRedirectsContext & Get()
Definition CoreRedirectsContext.h:173
FScopeCoreRedirectsReadLockedContext(FCoreRedirectsContext &InContext)
Definition CoreRedirectsContext.h:158
Definition CoreRedirectsContext.h:194
~FScopeCoreRedirectsWriteLockedContext()
Definition CoreRedirectsContext.h:202
FScopeCoreRedirectsWriteLockedContext(FCoreRedirectsContext &InContext)
Definition CoreRedirectsContext.h:196