UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NetObjectFilter.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
9#include "NetObjectFilter.generated.h"
10
13namespace UE::Net
14{
16 struct FReplicationInstanceProtocol;
17 struct FReplicationProtocol;
18 class FNetRefHandle;
19
20 namespace Private
21 {
23 class FNetRefHandleManager;
24 }
25}
26
27namespace UE::Net
28{
29
34
37{
41 Allow,
42};
43
45
46} // end namespace UE::Net
47
76
88
95
100struct alignas(8) FNetObjectFilteringInfo
101{
103};
104
106{
107 None = 0x00,
109 Spatial = 0x01,
111 NeedsUpdate = 0x02,
112};
114
119UCLASS(Transient, MinimalAPI, config=Engine)
121{
123
124public:
125};
126
141
163
175
176UCLASS(Abstract, MinimalAPI)
178{
180
181public:
182 IRISCORE_API void Init(const FNetObjectFilterInitParams& Params);
183 IRISCORE_API void Deinit();
184
186
188 IRISCORE_API virtual void AddConnection(uint32 ConnectionId);
189
191 IRISCORE_API virtual void RemoveConnection(uint32 ConnectionId);
192
194 virtual bool AddObject(uint32 ObjectIndex, FNetObjectFilterAddObjectParams&) PURE_VIRTUAL(AddObject, return false;)
195
198
199
201
207
210
215
217 ENetFilterTraits GetFilterTraits() const { return FilterTraits; }
218
221
223 UE::Net::FNetBitArrayView GetFilteredObjects() { return MakeNetBitArrayView(FilteredObjects); }
224
225
238 virtual FString PrintDebugInfoForObject(const FDebugInfoParams& Params, uint32 ObjectIndex) const { return Params.FilterName.ToString(); };
239
240protected:
242
244 virtual void OnInit(const FNetObjectFilterInitParams&) PURE_VIRTUAL(OnInit, );
245
247 virtual void OnDeinit() PURE_VIRTUAL(OnDeinit);
248
250 virtual void OnMaxInternalNetRefIndexIncreased(uint32 NewMaxInternalIndex) PURE_VIRTUAL(OnMaxInternalNetRefIndexIncreased);
251
252 /* Returns the filtering info for this object if it's handled by this filter, nullptr otherwise. */
253 IRISCORE_API FNetObjectFilteringInfo* GetFilteringInfo(uint32 ObjectIndex);
254
255 /* Returns the object index for the given NetRefHandle */
256 IRISCORE_API uint32 GetObjectIndex(UE::Net::FNetRefHandle NetRefHandle) const;
257
258 /* Returns true if the object is assigned to be filtered by this filter.*/
259 inline bool IsObjectFiltered(uint32 ObjectIndex) const;
260
262 inline void AddFilterTraits(ENetFilterTraits Traits);
263
265 inline void SetFilterTraits(ENetFilterTraits Traits, ENetFilterTraits TraitsMask);
266
268
270 UE::Net::FNetBitArray FilteredObjects;
271
272 const UE::Net::Private::FNetRefHandleManager* NetRefHandleManager = nullptr;
273
274private:
275 ENetFilterTraits FilterTraits = ENetFilterTraits::None;
276
277 TArrayView<FNetObjectFilteringInfo> FilteringInfos;
278};
279
280inline bool UNetObjectFilter::IsObjectFiltered(uint32 ObjectIndex) const
281{
282 return ObjectIndex < FilteredObjects.GetNumBits() && FilteredObjects.IsBitSet(ObjectIndex);
283}
284
286{
287 FilterTraits |= Traits;
288}
289
291{
292 const ENetFilterTraits NewFilterTraits = (FilterTraits & ~TraitsMask) | (Traits & TraitsMask);
293 FilterTraits = NewFilterTraits;
294}
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
void Init()
Definition LockFreeList.h:4
ENetFilterTraits
Definition NetObjectFilter.h:106
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Engine.Build.cs:7
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition NetBitArray.h:337
Definition NetChunkedArray.h:23
Definition NetObjectFilter.h:121
Definition NetObjectFilter.h:178
virtual bool AddObject(uint32 ObjectIndex, FNetObjectFilterAddObjectParams &) PURE_VIRTUAL(AddObject
UE::Net::FNetBitArrayView GetFilteredObjects()
Definition NetObjectFilter.h:223
virtual void RemoveObject(uint32 ObjectIndex, const FNetObjectFilteringInfo &) PURE_VIRTUAL(RemoveObject
virtual FString PrintDebugInfoForObject(const FDebugInfoParams &Params, uint32 ObjectIndex) const
Definition NetObjectFilter.h:238
virtual void virtual void OnDeinit() PURE_VIRTUAL(OnDeinit)
virtual void OnInit(const FNetObjectFilterInitParams &) PURE_VIRTUAL(OnInit
void AddFilterTraits(ENetFilterTraits Traits)
Definition NetObjectFilter.h:285
bool HasFilterTrait(ENetFilterTraits FilterTrait) const
Definition NetObjectFilter.h:220
void SetFilterTraits(ENetFilterTraits Traits, ENetFilterTraits TraitsMask)
Definition NetObjectFilter.h:290
Definition Object.h:95
Definition ReplicationSystem.h:70
Definition OverriddenPropertySet.cpp:45
uint32 FInternalNetRefIndex
Definition ReplicationStateStorage.h:20
Definition NetworkVersion.cpp:28
const TCHAR * LexToString(UE::Net::EStopReplicatingReason Reason)
Definition EngineReplicationBridge.cpp:121
constexpr FNetObjectFilterHandle InvalidNetObjectFilterHandle
Definition NetObjectFilter.h:30
uint32 FNetObjectFilterHandle
Definition ReplicationFiltering.h:20
constexpr FNetObjectFilterHandle ToOwnerFilterHandle
Definition NetObjectFilter.h:31
constexpr FNetObjectFilterHandle ConnectionFilterHandle
Definition NetObjectFilter.h:33
ENetFilterStatus
Definition NetObjectFilter.h:37
Definition AdvancedWidgetsModule.cpp:13
Definition NetObjectFilter.h:143
const UE::Net::FReplicationProtocol * Protocol
Definition NetObjectFilter.h:154
FNetObjectFilteringInfo & OutInfo
Definition NetObjectFilter.h:145
FName ProfileName
Definition NetObjectFilter.h:148
const uint8 * StateBuffer
Definition NetObjectFilter.h:161
const UE::Net::FReplicationInstanceProtocol * InstanceProtocol
Definition NetObjectFilter.h:151
Definition NetObjectFilter.h:129
uint32 MaxConnectionCount
Definition NetObjectFilter.h:139
uint32 CurrentMaxInternalIndex
Definition NetObjectFilter.h:137
UNetObjectFilterConfig * Config
Definition NetObjectFilter.h:133
uint32 AbsoluteMaxNetObjectCount
Definition NetObjectFilter.h:135
TObjectPtr< UReplicationSystem > ReplicationSystem
Definition NetObjectFilter.h:131
Definition NetObjectFilter.h:166
TArrayView< FNetObjectFilteringInfo > FilteringInfos
Definition NetObjectFilter.h:173
uint32 ObjectCount
Definition NetObjectFilter.h:170
const uint32 * ObjectIndices
Definition NetObjectFilter.h:168
Definition NetObjectFilter.h:101
uint16 Data[4]
Definition NetObjectFilter.h:102
Definition NetObjectFilter.h:52
UE::Net::FNetBitArrayView OutAllowedObjects
Definition NetObjectFilter.h:59
const UE::Net::TNetChunkedArray< uint8 * > * StateBuffers
Definition NetObjectFilter.h:65
uint32 ConnectionId
Definition NetObjectFilter.h:68
TArrayView< const FNetObjectFilteringInfo > FilteringInfos
Definition NetObjectFilter.h:62
UE::Net::FReplicationView View
Definition NetObjectFilter.h:71
const UE::Net::FNetBitArrayView GroupFilteredOutObjects
Definition NetObjectFilter.h:74
Definition NetObjectFilter.h:93
Definition NetObjectFilter.h:81
UE::Net::FNetBitArrayView ValidConnections
Definition NetObjectFilter.h:83
TArrayView< const FNetObjectFilteringInfo > FilteringInfos
Definition NetObjectFilter.h:86
Definition ObjectPtr.h:488
Definition ReplicationProtocol.h:42
Definition ReplicationProtocol.h:83
Definition ReplicationView.h:19
Definition NetObjectFilter.h:227
UE::Net::FReplicationView View
Definition NetObjectFilter.h:236
TArrayView< const FNetObjectFilteringInfo > FilteringInfos
Definition NetObjectFilter.h:230
FName FilterName
Definition NetObjectFilter.h:228