Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
Atomic.h File Reference
#include "HAL/ThreadSafeCounter.h"
#include "HAL/ThreadSafeCounter64.h"
#include "Templates/IsIntegral.h"
#include "Templates/IsTrivial.h"
#include "Traits/IntType.h"
#include <atomic>
+ Include dependency graph for Atomic.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  UE::Core::Private::Atomic::TIsSupportedSize< Size >
 
struct  UE::Core::Private::Atomic::TIsVoidPointer< T >
 
struct  UE::Core::Private::Atomic::TIsVoidPointer< void * >
 
struct  UE::Core::Private::Atomic::TIsVoidPointer< const void * >
 
struct  UE::Core::Private::Atomic::TIsVoidPointer< volatile void * >
 
struct  UE::Core::Private::Atomic::TIsVoidPointer< const volatile void * >
 
struct  UE::Core::Private::Atomic::TAtomicBaseType< T, bIsVoidPointer, bIsIntegral, bCanUsePlatformAtomics >
 
struct  UE::Core::Private::Atomic::TAtomicBaseType< T, false, false, false >
 
struct  UE::Core::Private::Atomic::TAtomicBaseType< T *, false, false, true >
 
struct  UE::Core::Private::Atomic::TAtomicBaseType< T, false, true, true >
 
struct  TAtomicBase_Basic< T >
 
struct  TAtomicBase_Arithmetic< T, DiffType >
 
struct  TAtomicBase_Pointer< T >
 
struct  TAtomicBase_Integral< T >
 
class  TAtomic< T >
 

Namespaces

namespace  UE
 
namespace  UE::Core
 
namespace  UE::Core::Private
 
namespace  UE::Core::Private::Atomic
 

Macros

#define USE_DEPRECATED_TATOMIC   1
 

Typedefs

template<typename T >
using UE::Core::Private::Atomic::TUnderlyingIntegerType_T = TSignedIntType_T<sizeof(T)>
 
template<typename T , bool bIsVoidPointer = TIsVoidPointer<T>::Value, bool bIsIntegral = TIsIntegral<T>::Value, bool bCanUsePlatformAtomics = TIsSupportedSize<sizeof(T)>::Value>
using UE::Core::Private::Atomic::TAtomicBaseType_T = typename TAtomicBaseType<T, bIsVoidPointer, bIsIntegral, bCanUsePlatformAtomics>::Type
 

Enumerations

enum class  EMemoryOrder { Relaxed , SequentiallyConsistent , Count }
 

Functions

template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::LoadRelaxed (const volatile T *Element)
 
template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::Load (const volatile T *Element)
 
template<typename T >
FORCEINLINE void UE::Core::Private::Atomic::StoreRelaxed (const volatile T *Element, T Value)
 
template<typename T >
FORCEINLINE void UE::Core::Private::Atomic::Store (const volatile T *Element, T Value)
 
template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::Exchange (volatile T *Element, T Value)
 
template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::IncrementExchange (volatile T *Element)
 
template<typename T >
FORCEINLINE TUE::Core::Private::Atomic::IncrementExchange (T *volatile *Element)
 
template<typename T , typename DiffType >
FORCEINLINE T UE::Core::Private::Atomic::AddExchange (volatile T *Element, DiffType Diff)
 
template<typename T , typename DiffType >
FORCEINLINE TUE::Core::Private::Atomic::AddExchange (T *volatile *Element, DiffType Diff)
 
template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::DecrementExchange (volatile T *Element)
 
template<typename T >
FORCEINLINE TUE::Core::Private::Atomic::DecrementExchange (T *volatile *Element)
 
template<typename T , typename DiffType >
FORCEINLINE T UE::Core::Private::Atomic::SubExchange (volatile T *Element, DiffType Diff)
 
template<typename T , typename DiffType >
FORCEINLINE TUE::Core::Private::Atomic::SubExchange (T *volatile *Element, DiffType Diff)
 
template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::CompareExchange (volatile T *Element, T ExpectedValue, T NewValue)
 
template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::AndExchange (volatile T *Element, T AndValue)
 
template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::OrExchange (volatile T *Element, T OrValue)
 
template<typename T >
FORCEINLINE T UE::Core::Private::Atomic::XorExchange (volatile T *Element, T XorValue)
 

Macro Definition Documentation

◆ USE_DEPRECATED_TATOMIC

#define USE_DEPRECATED_TATOMIC   1

Definition at line 16 of file Atomic.h.

Enumeration Type Documentation

◆ EMemoryOrder

Enumerator
Relaxed 
SequentiallyConsistent 
Count 

Definition at line 37 of file Atomic.h.