UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ReplicationStateFwd.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "HAL/Platform.h"
7
8namespace UE::Net
9{
10
11namespace Private
12{
13 struct FReplicationStateHeaderAccessor;
14}
15
20{
21 FReplicationStateHeader() : NetHandleId(0), bInitStateIsDirty(0), bStateIsDirty(0) {}
22
24 bool IsBound() const { return NetHandleId != 0; }
25
26private:
27 friend Private::FReplicationStateHeaderAccessor;
28
29 // All replication states that are bound by an instance protocol is assigned a NetHandle for dirty state tracking
30 uint32 NetHandleId : 30;
31 // Init state doesn't use changemasks, instead we have a reserved bit here
32 uint32 bInitStateIsDirty : 1;
33 // Track whether any state is dirty.
34 uint32 bStateIsDirty : 1;
35};
36
37static_assert(sizeof(FReplicationStateHeader) == sizeof(uint32) && alignof(FReplicationStateHeader) == alignof(uint32), "FReplicationStateHeader must currently have the same size and alignment as uint32");
38
39namespace Private
40{
41
45struct FReplicationStateHeaderAccessor
46{
47 static uint32 GetNetHandleId(const FReplicationStateHeader& Header) { return Header.NetHandleId; }
48 static bool GetIsInitStateDirty(const FReplicationStateHeader& Header) { return Header.bInitStateIsDirty; }
49 static bool GetIsStateDirty(const FReplicationStateHeader& Header) { return Header.bStateIsDirty; }
50
51 static void MarkInitStateDirty(FReplicationStateHeader& Header) { Header.bInitStateIsDirty = true; }
52 static void MarkStateDirty(FReplicationStateHeader& Header) { Header.bStateIsDirty = true; }
53
55 static void ClearAllStateIsDirty(FReplicationStateHeader& Header)
56 {
57 Header.bInitStateIsDirty = false;
58 Header.bStateIsDirty = false;
59 }
60
61 static void SetNetHandleId(FReplicationStateHeader& Header, FNetHandle NetHandle) { Header.NetHandleId = NetHandle.GetId(); }
62};
63
64}
65
66}
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
Definition ReplicationStateFwd.h:20
FReplicationStateHeader()
Definition ReplicationStateFwd.h:21
bool IsBound() const
Definition ReplicationStateFwd.h:24