UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneDataEventContainer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "MovieSceneFwd.h"
7#include "Containers/List.h"
8
9namespace UE
10{
11namespace MovieScene
12{
13
21
22template<typename T>
23class TIntrusiveEventHandler : public TIntrusiveLinkedList<TIntrusiveEventHandler<T>>, public T
24{
25protected:
27 {
28 this->Unlink();
29 }
30};
31
32template<typename T>
47
48template<typename EventInterface>
50{
51#if UE_MOVIESCENE_EVENTS
53 {
55 {
56 IntrusiveHandlers->Unlink();
57 }
59 {
60 NonIntrusiveHandlers->Unlink();
61 }
62 }
63
64 template<typename FuncType, typename... ArgTypes>
65 void Trigger(FuncType&& Func, ArgTypes&&... Args) const
66 {
68 {
70 // Increment before invoking to ensure that removals inside the invocation do not cause the iteration to return prematurely
71 ++It;
72
73 Invoke(Func, Current, Forward<ArgTypes>(Args)...);
74 }
76 {
78 // Increment before invoking to ensure that removals inside the invocation do not cause the iteration to return prematurely
79 ++It;
80
81 Invoke(Func, Current, Forward<ArgTypes>(Args)...);
82 }
83 }
84
86 {
87 check(!InLink->IsLinked());
88 InLink->LinkHead(IntrusiveHandlers);
89 }
90
92 {
93 check(!InLink.IsLinked());
96 }
97
98private:
99
102
103#else
104
105 template<typename ...ArgTypes>
106 void Trigger(ArgTypes&&...) const
107 {}
108
109#endif
110};
111
112} // namespace MovieScene
113} // namespace UE
114
#define check(expr)
Definition AssertionMacros.h:314
AUTORTFM_INFER UE_FORCEINLINE_HINT constexpr auto Invoke(FuncType &&Func, ArgTypes &&... Args) -> decltype(((FuncType &&) Func)((ArgTypes &&) Args...))
Definition Invoke.h:44
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition MovieScene.Build.cs:6
Definition Array.h:64
Definition List.h:349
void Unlink()
Definition List.h:132
IteratorType< ContainerType, ElementType > TIterator
Definition List.h:114
Definition List.h:285
Definition MovieSceneDataEventContainer.h:24
virtual ~TIntrusiveEventHandler()
Definition MovieSceneDataEventContainer.h:26
Definition AdvancedWidgetsModule.cpp:13
Definition MovieSceneDataEventContainer.h:15
FSimpleMulticastDelegate OnBracketClosed
Definition MovieSceneDataEventContainer.h:16
MOVIESCENE_API ~FDataEventScope()
MOVIESCENE_API FDataEventScope()
Definition MovieSceneDataEventContainer.h:50
void Trigger(ArgTypes &&...) const
Definition MovieSceneDataEventContainer.h:106
Definition MovieSceneDataEventContainer.h:34
TNonIntrusiveEventHandler(T *InInstance)
Definition MovieSceneDataEventContainer.h:38
TNonIntrusiveEventHandler()
Definition MovieSceneDataEventContainer.h:35
~TNonIntrusiveEventHandler()
Definition MovieSceneDataEventContainer.h:42