UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DelegateFilter.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"
9#include "Misc/IFilter.h"
10
14template< typename ItemType >
16 : public IFilter< ItemType >, public TSharedFromThis< TDelegateFilter< ItemType > >
17{
18public:
19
21
28 : Predicate( InPredicate )
29 {
30 check( Predicate.IsBound() );
31 }
32
34 virtual FChangedEvent& OnChanged() override { return ChangedEvent; }
35
42 virtual bool PassesFilter( ItemType InItem ) const override
43 {
44 return Predicate.Execute( InItem );
45 }
46
49 {
50 ChangedEvent.Broadcast();
51 }
52
53private:
54
56 FPredicate Predicate;
57
59 FChangedEvent ChangedEvent;
60};
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition IFilter.h:13
ItemType ItemType
Definition IFilter.h:15
Definition DelegateFilter.h:17
DECLARE_DERIVED_EVENT(TDelegateFilter, IFilter< ItemType >::FChangedEvent, FChangedEvent)
TDelegateFilter(FPredicate InPredicate)
Definition DelegateFilter.h:27
virtual bool PassesFilter(ItemType InItem) const override
Definition DelegateFilter.h:42
virtual FChangedEvent & OnChanged() override
Definition DelegateFilter.h:34
void BroadcastChanged()
Definition DelegateFilter.h:48
DECLARE_DELEGATE_RetVal_OneParam(bool, FPredicate, ItemType)
Definition SharedPointer.h:1640