UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Event.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
7#include "Misc/Timespan.h"
8#include "Templates/Atomic.h"
10
20class FEvent
21{
22public:
23
33 UE_DEPRECATED(5.0, "Direct creation of FEvent is discouraged for performance reasons. Please use FPlatformProcess::GetSynchEventFromPool/ReturnSynchEventToPool.")
34 virtual bool Create( bool bIsManualReset = false ) = 0;
35
43
49 virtual void Trigger() = 0;
50
56 virtual void Reset() = 0;
57
67 virtual bool Wait( uint32 WaitTime, const bool bIgnoreThreadIdleStats = false ) = 0;
68
74 bool Wait()
75 {
76 return Wait(MAX_uint32);
77 }
78
86 bool Wait( const FTimespan& WaitTime, const bool bIgnoreThreadIdleStats = false )
87 {
88 check(WaitTime.GetTicks() >= 0);
89 return Wait((uint32)FMath::Clamp<int64>(WaitTime.GetTicks() / ETimespan::TicksPerMillisecond, 0, MAX_uint32), bIgnoreThreadIdleStats);
90 }
91
94 : EventId( 0 )
95 , EventStartCycles( 0 )
96 {}
97
99 virtual ~FEvent()
100 {}
101
102 // DO NOT MODIFY THESE
103
105 CORE_API void AdvanceStats();
106
107protected:
109 CORE_API void WaitForStats();
110
113
115 CORE_API void ResetForStats();
116
119
122
125};
126
128
134class FEventRef final
135{
136public:
138
140
141 FEventRef(const FEventRef&) = delete;
142 FEventRef& operator=(const FEventRef&) = delete;
145
147 {
148 return Event;
149 }
150
152 {
153 return Event;
154 }
155
156private:
157 FEvent* Event;
158};
159
164{
165public:
167
169 {
170 return Ptr.Get();
171 }
172
173private:
175};
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
EEventMode
Definition Event.h:127
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MAX_uint32
Definition NumericLimits.h:21
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Event.h:135
FEvent * operator->() const
Definition Event.h:146
FEventRef & operator=(const FEventRef &)=delete
FEventRef(FEventRef &&Other)=delete
FEvent * Get()
Definition Event.h:151
FEventRef & operator=(FEventRef &&Other)=delete
CORE_API ~FEventRef()
Definition ThreadingBase.cpp:809
FEventRef(const FEventRef &)=delete
Definition Event.h:21
FEvent()
Definition Event.h:93
virtual void Trigger()=0
TAtomic< uint32 > EventStartCycles
Definition Event.h:124
CORE_API void WaitForStats()
Definition ThreadingBase.cpp:731
virtual void Reset()=0
virtual ~FEvent()
Definition Event.h:99
bool Wait()
Definition Event.h:74
CORE_API void TriggerForStats()
Definition ThreadingBase.cpp:744
CORE_API void ResetForStats()
Definition ThreadingBase.cpp:761
uint32 EventId
Definition Event.h:121
static CORE_API TAtomic< uint32 > EventUniqueId
Definition Event.h:118
virtual bool IsManualReset()=0
bool Wait(const FTimespan &WaitTime, const bool bIgnoreThreadIdleStats=false)
Definition Event.h:86
CORE_API void AdvanceStats()
Definition ThreadingBase.cpp:723
Definition Event.h:164
FEvent * operator->() const
Definition Event.h:168
Definition Atomic.h:538
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
constexpr int64 TicksPerMillisecond
Definition Timespan.h:41
@ false
Definition radaudio_common.h:23
Definition Timespan.h:76
int64 GetTicks() const
Definition Timespan.h:454