UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RepLayout.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
15#pragma once
16
17#include "CoreMinimal.h"
18#include "Misc/NetworkGuid.h"
19#include "UObject/CoreNet.h"
20#include "Engine/EngineTypes.h"
21#include "UObject/GCObject.h"
28
30class FRepLayout;
31class UActorChannel;
32class UNetConnection;
34
36{
37 None = 0,
38 Sync = (1 << 0),
40};
41
43
45{
46 None = 0,
47 RepNotifies = (1 << 0),
48 SkipRoleSwap = (1 << 1)
49};
50
52
54{
55 Handle, // Properties are seralized using handles in SendProperties_r
56 Name // Properties are seralized using their names in SendProperties_r
57};
58
60{
63};
64
66{
72 template<ERepDataBufferType DataType, typename ConstOrNotType>
74 {
75 static constexpr ERepDataBufferType Type = DataType;
77
78 public:
79
83
88
89 explicit operator bool() const
90 {
91 return Data != nullptr;
92 }
93
94 operator ConstOrNotType* () const
95 {
96 return Data;
97 }
98
100 };
101
102 template<typename TLayoutCmdType, typename ConstOrNotType>
104 {
105 return InBuffer + Cmd.Offset;
106 }
107
108 template<typename TLayoutCmdType, typename ConstOrNotType>
110 {
111 return InBuffer + Cmd.ShadowOffset;
112 }
113}
114
117
122
125class FRepLayout;
126class FRepLayoutCmd;
127
128namespace UE::Net
129{
136 {
138
139 // Setup condition map
140 const bool bIsInitial = RepFlags.bNetInitial ? true : false;
141 const bool bIsOwner = RepFlags.bNetOwner ? true : false;
142 const bool bIsSimulated = RepFlags.bNetSimulated ? true : false;
143 const bool bIsPhysics = RepFlags.bRepPhysics ? true : false;
144 const bool bIsReplay = RepFlags.bReplay ? true : false;
145
146 ConditionMap[COND_None] = true;
147 ConditionMap[COND_InitialOnly] = bIsInitial;
148
149 ConditionMap[COND_OwnerOnly] = bIsOwner;
150 ConditionMap[COND_SkipOwner] = !bIsOwner;
151
152 ConditionMap[COND_SimulatedOnly] = bIsSimulated;
154 ConditionMap[COND_AutonomousOnly] = !bIsSimulated;
155
158
159 ConditionMap[COND_InitialOrOwner] = bIsInitial || bIsOwner;
163
166 ConditionMap[COND_Never] = false;
167
168 return ConditionMap;
169 }
170}
171
173{
174private:
175 uint32 CmdIndex = 0;
176 uint32 ArrayIndex = 0;
177 uint32 ArrayDepth = 0;
178 void* DataPtr = nullptr;
179
180public:
182 : CmdIndex(0)
183 , ArrayIndex(0)
184 , ArrayDepth(0)
185 , DataPtr(nullptr)
186 {
187 }
188
190 : CmdIndex(InCmdIndex)
191 , ArrayIndex(InArrayIndex)
192 , ArrayDepth(InArrayDepth)
193 , DataPtr(InDataPtr)
194 {
195 }
196
197 FString ToDebugString() const
198 {
199 return FString::Printf(TEXT("{Cmd: %u, Index: %u, Depth: %u, Ptr: 0x%08" UPTRINT_x_FMT "}"), CmdIndex, ArrayIndex, ArrayDepth, (UPTRINT)DataPtr);
200 }
201
203 {
204 return (A.CmdIndex == B.CmdIndex) && (A.ArrayIndex == B.ArrayIndex) && (A.ArrayDepth == B.ArrayDepth) && (A.DataPtr == B.DataPtr);
205 }
206
208 {
209 return uint32(CityHash64((char*)&Key, sizeof(FRepSharedPropertyKey)));
210 }
211};
212
238
241{
243 bIsValid(false)
244 {}
245
247 {
248 // Explicitly reset members to improve resilience to double-destruction.
250 SerializedProperties = nullptr;
251 bIsValid = false;
252 }
253
254 void SetValid()
255 {
256 bIsValid = true;
257 }
258
259 void Init()
260 {
262 {
264 }
265 }
266
267 bool IsValid() const
268 {
269 return bIsValid;
270 }
271
272 void Reset()
273 {
274 if (bIsValid)
275 {
279
280 bIsValid = false;
281 }
282 }
283
296 const FRepLayoutCmd& Cmd,
297 const FRepSharedPropertyKey& PropertyKey,
298 const int32 CmdIndex,
299 const uint16 Handle,
300 const FConstRepObjectDataBuffer Data,
301 const bool bWriteHandle,
302 const bool bDoChecksum);
303
306
309
312
313 void CountBytes(FArchive& Ar) const;
314
315private:
316
318 bool bIsValid = false;
319};
320
333{
334public:
338
339 void CountBytes(FArchive& Ar) const
340 {
342 }
343
344 bool WasSent() const
345 {
347 }
348
349 void Reset()
350 {
352 Changed.Empty();
353 Resend = false;
354 }
355
358
361
363 bool Resend = false;
364};
365
377{
378private:
379
380 friend class FRepLayout;
381
383 RepLayout(InRepLayout)
384 {
385 }
386
387public:
388
390 Buffer(MoveTemp(InStaticBuffer.Buffer)),
391 RepLayout(MoveTemp(InStaticBuffer.RepLayout))
392 {
393 }
394
396
398 {
399 return Buffer.GetData();
400 }
401
402 const uint8* GetData() const
403 {
404 return Buffer.GetData();
405 }
406
407 int32 Num() const
408 {
409 return Buffer.Num();
410 }
411
412 void CountBytes(FArchive& Ar) const;
413
414 void Empty()
415 {
416 Buffer.Empty();
417 }
418
419private:
420
421 // Properties will be copied in here so memory needs aligned to largest type
424};
425
434{
435private:
436
438
441 const uint8* Source,
442 const UObject* InRepresenting,
444
445public:
446
448
450 static const int32 MAX_CHANGE_HISTORY = 64;
451
454
457
460
463
466
469
472
475
476 void CountBytes(FArchive& Ar) const;
477
478#if WITH_PUSH_MODEL
479
480 const UEPushModelPrivate::FPushModelPerNetDriverHandle& GetPushModelObjectHandle() const
481 {
483 }
484
485 bool HasAnyDirtyProperties() const;
486
487 bool HasValidPushModelHandle() const;
488
489private:
490 const UEPushModelPrivate::FPushModelPerNetDriverHandle PushModelObjectHandle;
491#endif
492};
493
502{
503private:
504
505 friend class FRepLayout;
506
509 const uint8* Source,
510 const UObject* InRepresenting,
511 struct FCustomDeltaChangelistState* CustomDeltaChangelistState);
512
513public:
514
516
518 {
519 return &RepChangelistState;
520 }
521
523 {
524 return &RepChangelistState;
525 }
526
527 void CountBytes(FArchive& Ar) const;
528
529private:
530
531 uint32 LastReplicationFrame = 0;
532 uint32 LastInitialReplicationFrame = 0;
533
534 FRepChangelistState RepChangelistState;
535};
536
565
568{
569private:
570
571 friend class FRepLayout;
572
575 HistoryStart(0),
576 HistoryEnd(0),
577 NumNaks(0),
581 {}
582
583public:
584
585 void CountBytes(FArchive& Ar) const;
586
587 UE_DEPRECATED(5.4, "Use UE::Net::BuildConditionMapFromRepFlags instead")
589
590 bool HasAnyPendingRetirements() const;
591
594
595 // Cache off the RemoteRole and Role per connection to avoid issues with
596 // FScopedRoleDowngrade. See UE-66313 (among others).
597
600
603
606
609
615
626
629
631
633
635 static constexpr int32 MAX_CHANGE_HISTORY = 32;
636
639
642
645
648
656
659
662
665
668};
669
672{
673private:
674
675 friend FRepLayout;
676
677 FRepState() {}
678
680 TUniquePtr<FReceivingRepState> ReceivingRepState;
681
683 TUniquePtr<FSendingRepState> SendingRepState;
684
685public:
686
687 void CountBytes(FArchive& Ar) const;
688
690 {
691 return ReceivingRepState.Get();
692 }
693
695 {
696 return ReceivingRepState.Get();
697 }
698
700 {
701 return SendingRepState.Get();
702 }
703
705 {
706 return SendingRepState.Get();
707 }
708};
709
715{
716 None,
717 SkipCreateReceivingState = 0x1, // Don't create a receiving RepState, as we never expect it to be used.
718};
720
723{
724 DynamicArray = 0,
725 Return = 1,
726 Property = 2,
727
728 PropertyBool = 3,
729 PropertyFloat = 4,
730 PropertyInt = 5,
731 PropertyByte = 6,
732 PropertyName = 7,
733 PropertyObject = 8,
734 PropertyUInt32 = 9,
735 PropertyVector = 10,
736 PropertyRotator = 11,
737 PropertyPlane = 12,
739 PropertyNetId = 14,
740 RepMovement = 15,
742 PropertyVector10 = 17,
743 PropertyVectorQ = 18,
744 PropertyString = 19,
745 PropertyUInt64 = 20,
751};
752
754
757{
758 None = 0,
759 IsLifetime = (1 << 0),
760 IsConditional = (1 << 1),
761 IsConfig = (1 << 2),
762 IsCustomDelta = (1 << 3),
763 IsNetSerialize = (1 << 4),
764 IsStructProperty = (1 << 5),
765 IsZeroConstructible = (1 << 6),
766 IsFastArray = (1 << 7),
768 HasObjectProperties = (1 << 8),
769 HasNetSerializeProperties = (1 << 9),
770 HasDynamicArrayProperties = (1 << 10),
771};
772
774
775
781{
782public:
783
786 CachedPropertyName(InProperty ? InProperty->GetFName() : NAME_None),
787 ArrayIndex(InArrayIndex),
788 ShadowOffset(0),
789 CmdStart(0),
790 CmdEnd(0),
791 Condition(COND_None),
792 RepNotifyCondition(REPNOTIFY_OnChanged),
793 RepNotifyNumParams(INDEX_NONE),
795 {}
796
798
800
808
811
814
822
825
828
835
837};
838
841{
842 None = 0,
843 IsSharedSerialization = (1 << 0),
844 IsStruct = (1 << 1),
845 IsEmptyArrayStruct = (1 << 2),
846};
847
849
850
887
922
943
946{
947public:
948
972
978 bool NextHandle();
979
985 bool JumpOverArray();
986
992 int32 PeekNextHandle() const;
993
996
999
1002
1008
1014
1020
1023
1026
1029
1032
1035
1038
1039 UStruct const * const Owner;
1040
1041private:
1042
1043 int32 LastSuccessfulCmdIndex;
1044};
1045
1053
1055{
1056 None,
1058};
1060
1062{
1063 None = 0,
1064 IsActor = (1 << 0),
1065 PartialPushSupport = (1 << 1),
1066 FullPushSupport = (1 << 2),
1068 NoReplicatedProperties = (1 << 4),
1069 FullPushProperties = (1 << 5),
1070 HasInitialOnlyProperties = (1 << 6),
1072};
1074
1075const TCHAR* LexToString(ERepLayoutFlags Flag);
1076
1078{
1079 Success, // Operation succeeded
1080 Empty, // Operation succeeded, but didn't generate (or consume) any data.
1081 Error, // Operation failed, but may succeed later.
1082 FatalError // Operation failed, and connection should be terminated.
1083};
1084
1173class FRepLayout : public FGCObject, public TSharedFromThis<FRepLayout>
1174{
1175private:
1176
1178 friend class UPackageMapClient;
1179 friend class FNetSerializeCB;
1181
1182 FRepLayout();
1183
1184public:
1185
1186 virtual ~FRepLayout();
1187
1189 ENGINE_API static TSharedPtr<FRepLayout> CreateFromClass(UClass* InObjectClass, const UNetConnection* ServerConnection = nullptr, const ECreateRepLayoutFlags Flags = ECreateRepLayoutFlags::None);
1190
1193
1196
1212
1220
1238 const FConstRepObjectDataBuffer Source,
1241
1242 UE_DEPRECATED(5.1, "No longer used, trackers are initialized by the replication subsystem.")
1244
1261 FSendingRepState* RESTRICT RepState,
1262 FRepChangelistState* RESTRICT RepChangelistState,
1263 const FConstRepObjectDataBuffer Data,
1264 UClass* ObjectClass,
1265 UActorChannel* OwningChannel,
1266 FNetBitWriter& Writer,
1267 const FReplicationFlags& RepFlags) const;
1268
1283 bool ReceiveProperties(
1284 UActorChannel* OwningChannel,
1285 UClass* InObjectClass,
1286 FReceivingRepState* RESTRICT RepState,
1287 UObject* Object,
1289 bool& bOutHasUnmapped,
1290 bool& bOutGuidsChanged,
1291 const EReceivePropertiesFlags InFlags) const;
1292
1304 FReceivingRepState* RESTRICT RepState,
1308
1321 FReceivingRepState* RESTRICT RepState,
1323 const FNetworkGUID& GUID) const;
1324
1338 FReceivingRepState* RESTRICT RepState,
1339 UPackageMap* PackageMap,
1340 UObject* Object,
1342 bool& bCalledPreNetReceive,
1343 bool& bOutSomeObjectsWereMapped,
1344 bool& bOutHasMoreUnmapped) const;
1345
1353 void CallRepNotifies(FReceivingRepState* RepState, UObject* Object) const;
1354
1356 void ValidateWithChecksum(TConstRepDataBuffer<DataType> Data, FBitArchive & Ar) const;
1357
1358 uint32 GenerateChecksum(const FRepState* RepState) const;
1359
1374 TRepDataBuffer<DstType> Destination,
1375 TConstRepDataBuffer<SrcType> Source,
1376 const EDiffPropertiesFlags Flags) const;
1377
1398 TArray<UObject*>* ObjReferences,
1399 TRepDataBuffer<DstType> Destination,
1400 TConstRepDataBuffer<SrcType> Source) const;
1401
1405 UActorChannel* Channel,
1406 FNetBitWriter& Writer,
1407 const FConstRepObjectDataBuffer Data) const;
1408
1411 UObject* Object,
1413 UActorChannel* Channel,
1414 FNetBitReader& Reader,
1416 TSet<FNetworkGUID>& UnmappedGuids) const;
1417
1419 void ENGINE_API BuildSharedSerializationForRPC(const FConstRepObjectDataBuffer Data, UE::Net::FNetTokenStore* NetTokenStore = nullptr);
1420
1423
1424 // Struct support
1426 UStruct* Struct,
1427 FBitArchive& Ar,
1430 bool& bHasUnmapped,
1431 const UObject* OwningObject = nullptr) const;
1432
1435
1436 UObject* GetOwner() const { return Owner; }
1437
1440 FSendingRepState* RESTRICT RepState,
1442 const FConstRepObjectDataBuffer Data,
1443 UNetConnection* Connection,
1444 FNetBitWriter& Writer,
1445 TArray<uint16>& Changed) const;
1446
1449 UNetConnection* Connection,
1450 FReceivingRepState* RESTRICT RepState,
1453 bool& bOutHasUnmapped,
1454 const bool bEnableRepNotifies,
1455 bool& bOutGuidsChanged,
1456 UObject* OwningObject = nullptr) const;
1457
1458 //~ Begin FGCObject Interface
1459 ENGINE_API virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
1460 ENGINE_API virtual FString GetReferencerName() const override;
1461 //~ End FGCObject Interface
1462
1468 template<typename T>
1470 {
1471 for (const FRepParentCmd& Parent : Parents)
1472 {
1473 if (Parent.CachedPropertyName == PropertyName)
1474 {
1475 return (T*)((Data + Parent).Data);
1476 }
1477 }
1478
1479 return nullptr;
1480 }
1481
1482 template<typename T>
1484 {
1485 for (const FRepParentCmd& Parent : Parents)
1486 {
1487 if (Parent.CachedPropertyName == PropertyName)
1488 {
1489 return (const T*)((Data + Parent).Data);
1490 }
1491 }
1492
1493 return nullptr;
1494 }
1495
1497 {
1498 return Flags;
1499 }
1500
1501 const bool IsEmpty() const
1502 {
1504 }
1505
1506 const int32 GetNumParents() const
1507 {
1508 return Parents.Num();
1509 }
1510
1512 {
1513 return Parents.IsValidIndex(Index) ? Parents[Index].Property : nullptr;
1514 }
1515
1517 {
1518 return Parents.IsValidIndex(Index) ? Parents[Index].ArrayIndex : 0;
1519 }
1520
1522 {
1523 return Parents.IsValidIndex(Index) ? Parents[Index].Condition : COND_None;
1524 }
1525
1527 {
1528 return Parents.IsValidIndex(Index) ? EnumHasAnyFlags(Parents[Index].Flags, ERepParentFlags::IsCustomDelta) : false;
1529 }
1530
1531#if WITH_PUSH_MODEL
1532 const bool IsPushModelProperty(int32 Index) const
1533 {
1534 return PushModelProperties.IsValidIndex(Index) ? PushModelProperties[Index] : false;
1535 }
1536#endif
1537
1538 const uint16 GetCustomDeltaIndexFromPropertyRepIndex(const uint16 PropertyRepIndex) const;
1539
1540 void CountBytes(FArchive& Ar) const;
1541
1542private:
1543
1544 void InitFromClass(UClass* InObjectClass, const UNetConnection* ServerConnection, const ECreateRepLayoutFlags Flags);
1545
1546 void InitFromStruct(UStruct* InStruct, const UNetConnection* ServerConnection, const ECreateRepLayoutFlags Flags);
1547
1548 void InitFromFunction(UFunction* InFunction, const UNetConnection* ServerConnection, const ECreateRepLayoutFlags Flags);
1549
1560 ERepLayoutResult CompareProperties(
1561 FSendingRepState* RESTRICT RepState,
1562 FRepChangelistState* RESTRICT RepChangelistState,
1563 const FConstRepObjectDataBuffer Data,
1564 const FReplicationFlags& RepFlags,
1565 const bool bForceCompare) const;
1566
1583 void SendProperties(
1584 FSendingRepState* RESTRICT RepState,
1586 const FConstRepObjectDataBuffer Data,
1587 UClass* ObjectClass,
1588 FNetBitWriter& Writer,
1592
1600 void PruneChangeList(
1601 const FConstRepObjectDataBuffer Data,
1602 const TArray<uint16>& Changed,
1604
1605 void MergeChangeList(
1606 const FConstRepObjectDataBuffer Data,
1607 const TArray<uint16>& Dirty1,
1608 const TArray<uint16>& Dirty2,
1610
1611 void RebuildConditionalProperties(
1612 FSendingRepState* RepState,
1613 const FReplicationFlags RepFlags) const;
1614
1615 void UpdateChangelistHistory(
1616 FSendingRepState* RepState,
1617 UClass* ObjectClass,
1618 const FConstRepObjectDataBuffer Data,
1619 UNetConnection* Connection,
1620 TArray<uint16>* OutMerged) const;
1621
1622 void SendProperties_BackwardsCompatible_r(
1623 FSendingRepState* RESTRICT RepState,
1627 FNetBitWriter& Writer,
1628 const bool bDoChecksum,
1630 const FConstRepObjectDataBuffer Source) const;
1631
1632 void SendAllProperties_BackwardsCompatible_r(
1633 FSendingRepState* RESTRICT RepState,
1634 FNetBitWriter& Writer,
1635 const bool bDoChecksum,
1638 const int32 CmdStart,
1639 const int32 CmdEnd,
1640 const FConstRepObjectDataBuffer SourceData) const;
1641
1642 void SendProperties_r(
1643 FSendingRepState* RESTRICT RepState,
1644 FNetBitWriter& Writer,
1645 const bool bDoChecksum,
1647 const FConstRepObjectDataBuffer SourceData,
1648 const int32 ArrayDepth,
1651
1652 void BuildSharedSerialization(
1653 const FConstRepObjectDataBuffer Data,
1655 const bool bWriteHandle,
1657 UE::Net::FNetTokenStore* NetTokenStore = nullptr) const;
1658
1659 void BuildSharedSerialization_r(
1661 const FConstRepObjectDataBuffer SourceData,
1662 const bool bWriteHandle,
1663 const bool bDoChecksum,
1664 const int32 ArrayDepth,
1666
1667 void BuildSharedSerializationForRPC_DynamicArray_r(
1668 const int32 CmdIndex,
1669 const FConstRepObjectDataBuffer Data,
1670 int32 ArrayDepth,
1672
1673 void BuildSharedSerializationForRPC_r(
1674 const int32 CmdStart,
1675 const int32 CmdEnd,
1676 const FConstRepObjectDataBuffer Data,
1677 int32 ArrayIndex,
1678 int32 ArrayDepth,
1680
1681 TSharedPtr<FNetFieldExportGroup> CreateNetfieldExportGroup() const;
1682
1683 int32 FindCompatibleProperty(
1684 const int32 CmdStart,
1685 const int32 CmdEnd,
1686 const uint32 Checksum) const;
1687
1688 bool ReceiveProperties_BackwardsCompatible_r(
1689 FReceivingRepState* RESTRICT RepState,
1691 FNetBitReader& Reader,
1692 const int32 CmdStart,
1693 const int32 CmdEnd,
1694 FRepShadowDataBuffer ShadowData,
1697 FGuidReferencesMap* GuidReferencesMap,
1698 bool& bOutHasUnmapped,
1699 bool& bOutGuidsChanged,
1700 UObject* OwningObject) const;
1701
1702 void GatherGuidReferences_r(
1703 const FGuidReferencesMap* GuidReferencesMap,
1706
1707 bool MoveMappedObjectToUnmapped_r(
1708 FGuidReferencesMap* GuidReferencesMap,
1709 const FNetworkGUID& GUID,
1710 const UObject* const OwningObject) const;
1711
1712 void UpdateUnmappedObjects_r(
1713 FReceivingRepState* RESTRICT RepState,
1714 FGuidReferencesMap* GuidReferencesMap,
1716 UNetConnection* Connection,
1717 FRepShadowDataBuffer ShadowData,
1719 const int32 MaxAbsOffset,
1720 bool& bCalledPreNetReceive,
1721 bool& bOutSomeObjectsWereMapped,
1722 bool& bOutHasMoreUnmapped) const;
1723
1724 void SanityCheckChangeList_DynamicArray_r(
1725 const int32 CmdIndex,
1726 const FConstRepObjectDataBuffer Data,
1728 int32& ChangedIndex) const;
1729
1730 uint16 SanityCheckChangeList_r(
1731 const int32 CmdStart,
1732 const int32 CmdEnd,
1733 const FConstRepObjectDataBuffer Data,
1735 int32& ChangedIndex,
1736 uint16 Handle) const;
1737
1738 void SanityCheckChangeList(const FConstRepObjectDataBuffer Data, TArray<uint16>& Changed) const;
1739
1740 void SerializeProperties_DynamicArray_r(
1741 FBitArchive& Ar,
1743 const int32 CmdIndex,
1745 bool& bHasUnmapped,
1746 const int32 ArrayDepth,
1748 FNetTraceCollector* Collector,
1749 const UObject* OwningObject) const;
1750
1751 void SerializeProperties_r(
1752 FBitArchive& Ar,
1754 const int32 CmdStart,
1755 const int32 CmdEnd,
1757 bool& bHasUnmapped,
1758 const int32 ArrayIndex,
1759 const int32 ArrayDepth,
1761 FNetTraceCollector* Collector,
1762 const UObject* OwningObject) const;
1763
1764 void MergeChangeList_r(
1767 const FConstRepObjectDataBuffer SourceData,
1768 TArray<uint16>& OutChanged) const;
1769
1770 void PruneChangeList_r(
1772 const FConstRepObjectDataBuffer SourceData,
1773 TArray<uint16>& OutChanged) const;
1774
1783 void FilterChangeList(
1788
1790 void FilterChangeListToActive(
1794
1795 void BuildChangeList_r(
1796 const TArray<FHandleToCmdIndex>& HandleToCmdIndex,
1797 const int32 CmdStart,
1798 const int32 CmdEnd,
1799 const FConstRepObjectDataBuffer Data,
1800 const int32 HandleOffset,
1801 const bool bForceArraySends,
1802 TArray<uint16>& Changed) const;
1803
1804 void BuildHandleToCmdIndexTable_r(
1805 const int32 CmdStart,
1806 const int32 CmdEnd,
1807 TArray<FHandleToCmdIndex>& HandleToCmdIndex);
1808
1809 ERepLayoutResult UpdateChangelistMgr(
1810 FSendingRepState* RESTRICT RepState,
1812 const UObject* InObject,
1813 const uint32 ReplicationFrame,
1814 const FReplicationFlags& RepFlags,
1815 const bool bForceCompare) const;
1816
1817 void InitRepStateStaticBuffer(FRepStateStaticBuffer& ShadowData, const FConstRepObjectDataBuffer Source) const;
1818 void ConstructProperties(FRepStateStaticBuffer& ShadowData) const;
1819 void CopyProperties(FRepStateStaticBuffer& ShadowData, const FConstRepObjectDataBuffer Source) const;
1820 void DestructProperties(FRepStateStaticBuffer& RepStateStaticBuffer) const;
1821
1827 bool SendCustomDeltaProperty(FNetDeltaSerializeInfo& Params, const uint16 CustomDeltaIndex) const;
1828
1841 bool ReceiveCustomDeltaProperty(
1842 FReceivingRepState* RESTRICT ReceivingRepState,
1843 FNetDeltaSerializeInfo& Params,
1844 FStructProperty* Property) const;
1845
1846 ERepLayoutResult DeltaSerializeFastArrayProperty(struct FFastArrayDeltaSerializeParams& Params, FReplicationChangelistMgr* ChangelistMgr) const;
1847
1848 void GatherGuidReferencesForFastArray(struct FFastArrayDeltaSerializeParams& Params) const;
1849
1850 bool MoveMappedObjectToUnmappedForFastArray(struct FFastArrayDeltaSerializeParams& Params) const;
1851
1852 void UpdateUnmappedGuidsForFastArray(struct FFastArrayDeltaSerializeParams& Params) const;
1853
1854 void PreSendCustomDeltaProperties(
1855 UObject* Object,
1856 UNetConnection* Connection,
1857 FReplicationChangelistMgr& ChangelistMgr,
1858 uint32 ReplicationFrame,
1860
1861 void PostSendCustomDeltaProperties(
1862 UObject* Object,
1863 UNetConnection* Connection,
1864 FReplicationChangelistMgr& ChangelistMgr,
1866
1867 const uint16 GetNumLifetimeCustomDeltaProperties() const;
1868
1869 const uint16 GetLifetimeCustomDeltaPropertyRepIndex(const uint16 RepIndCustomDeltaPropertyIndex) const;
1870
1871 FProperty* GetLifetimeCustomDeltaProperty(const uint16 CustomDeltaPropertyIndex) const;
1872
1873 const ELifetimeCondition GetLifetimeCustomDeltaPropertyCondition(const uint16 RepIndCustomDeltaPropertyIndex) const;
1874
1876
1878 int32 ShadowDataBufferSize;
1879
1881 TArray<FRepParentCmd> Parents;
1882
1885
1887 TArray<FHandleToCmdIndex> BaseHandleToCmdIndex;
1888
1893 TUniquePtr<struct FLifetimeCustomDeltaState> LifetimeCustomPropertyState;
1894
1896 UStruct* Owner;
1897
1899 FRepSerializationSharedInfo SharedInfoRPC;
1900
1902 TBitArray<> SharedInfoRPCParentsChanged;
1903
1904#if WITH_PUSH_MODEL
1906 TBitArray<> PushModelProperties;
1907#endif
1908
1909 TMap<FRepLayoutCmd*, TArray<FRepLayoutCmd>> NetSerializeLayouts;
1910};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UPTRINT_x_FMT
Definition AndroidPlatformString.h:54
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
uint64 CityHash64(const char *s, uint32 len)
Definition CityHash.cpp:388
typename TCopyQualifiersFromTo< From, To >::Type TCopyQualifiersFromTo_T
Definition CopyQualifiersFromTo.h:17
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
ELifetimeCondition
Definition CoreNetTypes.h:20
@ COND_Never
Definition CoreNetTypes.h:36
@ COND_OwnerOnly
Definition CoreNetTypes.h:23
@ COND_SkipOwner
Definition CoreNetTypes.h:24
@ COND_Dynamic
Definition CoreNetTypes.h:35
@ COND_Custom
Definition CoreNetTypes.h:29
@ COND_SimulatedOnly
Definition CoreNetTypes.h:25
@ COND_Max
Definition CoreNetTypes.h:38
@ COND_SkipReplay
Definition CoreNetTypes.h:34
@ COND_SimulatedOrPhysics
Definition CoreNetTypes.h:27
@ COND_ReplayOrOwner
Definition CoreNetTypes.h:30
@ COND_InitialOnly
Definition CoreNetTypes.h:22
@ COND_ReplayOnly
Definition CoreNetTypes.h:31
@ COND_SimulatedOrPhysicsNoReplay
Definition CoreNetTypes.h:33
@ COND_InitialOrOwner
Definition CoreNetTypes.h:28
@ COND_AutonomousOnly
Definition CoreNetTypes.h:26
@ COND_SimulatedOnlyNoReplay
Definition CoreNetTypes.h:32
@ COND_None
Definition CoreNetTypes.h:21
ELifetimeRepNotifyCondition
Definition CoreNetTypes.h:43
@ REPNOTIFY_OnChanged
Definition CoreNetTypes.h:44
FString GetPathNameSafe(const FField *InField, const UObject *StopOuter)
Definition Field.cpp:1150
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::UPTRINT UPTRINT
An unsigned integer the same size as a pointer.
Definition Platform.h:1146
#define RESTRICT
Definition Platform.h:706
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ Changelist
The pre-release field adds additional versioning through a series of comparable dotted strings or num...
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
constexpr EIOSEventType operator+(EIOSEventType type, int Index)
Definition IOSInputInterface.cpp:138
@ Num
Definition MetalRHIPrivate.h:234
const bool
Definition NetworkReplayStreaming.h:178
ECreateReplicationChangelistMgrFlags
Definition RepLayout.h:1047
ECreateRepLayoutFlags
Definition RepLayout.h:1055
const TCHAR * LexToString(ERepLayoutCmdType CmdType)
Definition RepLayout.cpp:8522
ESerializePropertyType
Definition RepLayout.h:54
TRepDataBuffer< ERepDataBufferType::ObjectBuffer > FRepObjectDataBuffer
Definition RepLayout.h:118
ECreateRepStateFlags
Definition RepLayout.h:715
ERepLayoutResult
Definition RepLayout.h:1078
EDiffPropertiesFlags
Definition RepLayout.h:36
@ IncludeConditionalProperties
Indicates that properties should be updated (synchronized), not just diffed.
ERepLayoutFlags
Definition RepLayout.h:1062
@ HasInitialOnlyProperties
All properties in this RepLayout use Push Model.
@ FullPushProperties
Will be set if the RepLayout has no lifetime properties, or they are all disabled.
@ NoReplicatedProperties
Will be set for any RepLayout that contains Object or Net Serialize property commands.
@ HasObjectOrNetSerializeProperties
All properties and fast arrays in this RepLayout use Push Model.
@ HasDynamicConditionProperties
There is at least 1 Initial Only Lifetime property on this RepLayout.
@ PartialPushSupport
This RepLayout is for AActor or a subclass of AActor.
@ FullPushSupport
This RepLayout has some properties that use Push Model and some that don't.
EReceivePropertiesFlags
Definition RepLayout.h:45
@ SkipRoleSwap
Whether or not RepNotifies will be fired due to changed properties.
ERepParentFlags
Definition RepLayout.h:757
@ IsZeroConstructible
This property is a FStructProperty.
@ IsConditional
This property is valid for the lifetime of the object (almost always set).
@ HasNetSerializeProperties
This property is tracking UObjects (may be through nested properties).
@ IsStructProperty
This property uses a custom net serializer. Mutually exclusive with IsCustomDelta.
@ IsConfig
This property has a secondary condition to check.
@ HasDynamicArrayProperties
This property contains Net Serialize properties (may be through nested properties).
@ IsFastArray
This property is ZeroConstructible.
@ IsCustomDelta
This property is defaulted from a config file.
@ IsNetSerialize
This property uses custom delta compression. Mutually exclusive with IsNetSerialize.
ERepLayoutCmdFlags
Definition RepLayout.h:841
@ IsSharedSerialization
No flags.
@ IsEmptyArrayStruct
This is a struct property.
@ IsStruct
Indicates the property is eligible for shared serialization.
TRepDataBuffer< ERepDataBufferType::ShadowBuffer > FRepShadowDataBuffer
Definition RepLayout.h:119
ERepDataBufferType
Definition RepLayout.h:60
@ ShadowBuffer
Indicates this buffer is a full object's memory.
TConstRepDataBuffer< ERepDataBufferType::ShadowBuffer > FConstRepShadowDataBuffer
Definition RepLayout.h:121
TConstRepDataBuffer< ERepDataBufferType::ObjectBuffer > FConstRepObjectDataBuffer
Definition RepLayout.h:120
ERepLayoutCmdType
Definition RepLayout.h:723
@ Property
Return from array, or end of stream.
@ NetSerializeStructWithObjectReferences
@ Return
Dynamic array.
@ PropertyBool
Generic property.
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Offset
Definition VulkanMemory.cpp:4033
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 Archive.h:1208
Definition BitArchive.h:13
Definition RepLayout.h:929
int32 ChangedIndex
Definition RepLayout.h:941
FChangelistIterator(const TArray< uint16 > &InChanged, const int32 InChangedIndex)
Definition RepLayout.h:932
const TArray< uint16 > & Changed
Definition RepLayout.h:938
Definition GCObject.h:128
Definition RepLayout.h:890
int32 CmdIndex
Definition RepLayout.h:919
TUniquePtr< TArray< FHandleToCmdIndex > > HandleToCmdIndex
Definition RepLayout.h:920
FHandleToCmdIndex & operator=(FHandleToCmdIndex &&Other)
Definition RepLayout.h:908
FHandleToCmdIndex(const int32 InHandleToCmdIndex)
Definition RepLayout.h:897
FHandleToCmdIndex()
Definition RepLayout.h:892
FHandleToCmdIndex(FHandleToCmdIndex &&Other)
Definition RepLayout.h:902
Definition NameTypes.h:617
Definition CoreNet.h:415
Definition CoreNet.h:384
Definition PackageMapClient.h:92
Definition DataReplication.cpp:96
Definition NetworkGuid.h:12
Definition UnrealTemplate.h:321
Definition UnrealType.h:174
Definition RepLayout.h:539
FGuidReferencesMap GuidReferencesMap
Definition RepLayout.h:554
FRepStateStaticBuffer StaticBuffer
Definition RepLayout.h:551
TArray< FProperty * > RepNotifies
Definition RepLayout.h:557
void CountBytes(FArchive &Ar) const
Definition RepLayout.cpp:8380
TMap< FProperty *, TArray< uint8 > > RepNotifyMetaData
Definition RepLayout.h:563
Definition UObjectGlobals.h:2492
Definition RepLayout.h:333
bool Resend
Definition RepLayout.h:363
void Reset()
Definition RepLayout.h:349
FPacketIdRange OutPacketIdRange
Definition RepLayout.h:357
void CountBytes(FArchive &Ar) const
Definition RepLayout.h:339
TArray< uint16 > Changed
Definition RepLayout.h:360
bool WasSent() const
Definition RepLayout.h:344
FRepChangedHistory()
Definition RepLayout.h:335
Definition RepChangedPropertyTracker.h:23
Definition RepLayout.h:434
~FRepChangelistState()
Definition RepLayout.cpp:1193
int32 HistoryEnd
Definition RepLayout.h:462
TUniquePtr< struct FCustomDeltaChangelistState > CustomDeltaChangelistState
Definition RepLayout.h:456
FRepChangedHistory ChangeHistory[MAX_CHANGE_HISTORY]
Definition RepLayout.h:453
static const int32 MAX_CHANGE_HISTORY
Definition RepLayout.h:450
FRepStateStaticBuffer StaticBuffer
Definition RepLayout.h:471
uint32 CustomDeltaChangeIndex
Definition RepLayout.h:468
void CountBytes(FArchive &Ar) const
Definition RepLayout.cpp:1216
int32 CompareIndex
Definition RepLayout.h:465
int32 HistoryStart
Definition RepLayout.h:459
FRepSerializationSharedInfo SharedSerialization
Definition RepLayout.h:474
Definition RepLayout.h:946
const TArray< FHandleToCmdIndex > & HandleToCmdIndex
Definition RepLayout.h:1001
UStruct const *const Owner
Definition RepLayout.h:1039
FRepHandleIterator(UStruct const *const InOwner, FChangelistIterator &InChangelistIterator, const TArray< FRepLayoutCmd > &InCmds, const TArray< FHandleToCmdIndex > &InHandleToCmdIndex, const int32 InElementSize, const int32 InMaxArrayIndex, const int32 InMinCmdIndex, const int32 InMaxCmdIndex)
Definition RepLayout.h:949
const TArray< FRepLayoutCmd > & Cmds
Definition RepLayout.h:998
int32 ArrayIndex
Definition RepLayout.h:1034
const int32 MaxArrayIndex
Definition RepLayout.h:1019
int32 ArrayOffset
Definition RepLayout.h:1037
const int32 ArrayElementSize
Definition RepLayout.h:1013
bool JumpOverArray()
Definition RepLayout.cpp:2398
const int32 MinCmdIndex
Definition RepLayout.h:1022
bool NextHandle()
Definition RepLayout.cpp:2318
int32 CmdIndex
Definition RepLayout.h:1031
const int32 NumHandlesPerElement
Definition RepLayout.h:1007
int32 Handle
Definition RepLayout.h:1028
FChangelistIterator & ChangelistIterator
Definition RepLayout.h:995
const int32 MaxCmdIndex
Definition RepLayout.h:1025
int32 PeekNextHandle() const
Definition RepLayout.cpp:2413
Definition RepLayout.h:857
uint16 RelativeHandle
Definition RepLayout.h:876
uint16 ParentIndex
Definition RepLayout.h:879
int32 Offset
Definition RepLayout.h:870
FProperty * Property
Definition RepLayout.h:861
uint16 EndCmd
Definition RepLayout.h:864
uint32 CompatibleChecksum
Definition RepLayout.h:882
int32 ShadowOffset
Definition RepLayout.h:873
ERepLayoutCmdFlags Flags
Definition RepLayout.h:885
ERepLayoutCmdType Type
Definition RepLayout.h:884
uint16 ElementSize
Definition RepLayout.h:867
Definition RepLayout.h:1174
static ENGINE_API TSharedPtr< FRepLayout > CreateFromStruct(UStruct *InStruct, const UNetConnection *ServerConnection=nullptr, const ECreateRepLayoutFlags Flags=ECreateRepLayoutFlags::None)
Definition RepLayout.cpp:6542
void ValidateWithChecksum(TConstRepDataBuffer< DataType > Data, FBitArchive &Ar) const
Definition RepLayout.cpp:4866
ENGINE_API void SerializePropertiesForStruct(UStruct *Struct, FBitArchive &Ar, UPackageMap *Map, FRepObjectDataBuffer Data, bool &bHasUnmapped, const UObject *OwningObject=nullptr) const
Definition RepLayout.cpp:7164
const T * GetShadowStateValue(FConstRepShadowDataBuffer Data, const FName PropertyName) const
Definition RepLayout.h:1483
const uint16 GetCustomDeltaIndexFromPropertyRepIndex(const uint16 PropertyRepIndex) const
Definition RepLayout.cpp:8365
void InitChangedTracker(FRepChangedPropertyTracker *ChangedTracker) const
Definition RepLayout.cpp:7255
bool ReplicateProperties(FSendingRepState *RESTRICT RepState, FRepChangelistState *RESTRICT RepChangelistState, const FConstRepObjectDataBuffer Data, UClass *ObjectClass, UActorChannel *OwningChannel, FNetBitWriter &Writer, const FReplicationFlags &RepFlags) const
Definition RepLayout.cpp:1972
void UpdateUnmappedObjects(FReceivingRepState *RESTRICT RepState, UPackageMap *PackageMap, UObject *Object, struct FNetDeltaSerializeInfo &Params, bool &bCalledPreNetReceive, bool &bOutSomeObjectsWereMapped, bool &bOutHasMoreUnmapped) const
Definition RepLayout.cpp:4468
void CountBytes(FArchive &Ar) const
Definition RepLayout.cpp:8321
bool DiffProperties(TArray< FProperty * > *RepNotifies, TRepDataBuffer< DstType > Destination, TConstRepDataBuffer< SrcType > Source, const EDiffPropertiesFlags Flags) const
bool MoveMappedObjectToUnmapped(FReceivingRepState *RESTRICT RepState, struct FNetDeltaSerializeInfo &Params, const FNetworkGUID &GUID) const
Definition RepLayout.cpp:4299
static TSharedPtr< FRepLayout > CreateFromFunction(UFunction *InFunction, const UNetConnection *ServerConnection=nullptr, const ECreateRepLayoutFlags Flags=ECreateRepLayoutFlags::None)
Definition RepLayout.cpp:6484
static ENGINE_API TSharedPtr< FRepLayout > CreateFromClass(UClass *InObjectClass, const UNetConnection *ServerConnection=nullptr, const ECreateRepLayoutFlags Flags=ECreateRepLayoutFlags::None)
Definition RepLayout.cpp:6071
virtual ENGINE_API void AddReferencedObjects(FReferenceCollector &Collector) override
Definition RepLayout.cpp:7405
const int32 GetParentArrayIndex(int32 Index) const
Definition RepLayout.h:1516
const bool IsCustomDeltaProperty(int32 Index) const
Definition RepLayout.h:1526
const bool IsEmpty() const
Definition RepLayout.h:1501
bool ReceiveProperties(UActorChannel *OwningChannel, UClass *InObjectClass, FReceivingRepState *RESTRICT RepState, UObject *Object, FNetBitReader &InBunch, bool &bOutHasUnmapped, bool &bOutGuidsChanged, const EReceivePropertiesFlags InFlags) const
Definition RepLayout.cpp:3789
const ERepLayoutFlags GetFlags() const
Definition RepLayout.h:1496
const FProperty * GetParentProperty(int32 Index) const
Definition RepLayout.h:1511
const int32 GetNumParents() const
Definition RepLayout.h:1506
void ENGINE_API ClearSharedSerializationForRPC()
Definition RepLayout.cpp:7007
void SendProperties_BackwardsCompatible(FSendingRepState *RESTRICT RepState, FRepChangedPropertyTracker *ChangedTracker, const FConstRepObjectDataBuffer Data, UNetConnection *Connection, FNetBitWriter &Writer, TArray< uint16 > &Changed) const
Definition RepLayout.cpp:3261
FRepStateStaticBuffer CreateShadowBuffer(const FConstRepObjectDataBuffer Source) const
Definition RepLayout.cpp:7261
friend struct FCustomDeltaPropertyIterator
Definition RepLayout.h:1180
void ENGINE_API BuildSharedSerializationForRPC(const FConstRepObjectDataBuffer Data, UE::Net::FNetTokenStore *NetTokenStore=nullptr)
Definition RepLayout.cpp:6967
virtual ENGINE_API FString GetReferencerName() const override
Definition RepLayout.cpp:7427
virtual ~FRepLayout()
Definition RepLayout.cpp:1271
void ENGINE_API SendPropertiesForRPC(UFunction *Function, UActorChannel *Channel, FNetBitWriter &Writer, const FConstRepObjectDataBuffer Data) const
Definition RepLayout.cpp:7013
void GatherGuidReferences(FReceivingRepState *RESTRICT RepState, struct FNetDeltaSerializeInfo &Params, TSet< FNetworkGUID > &OutReferencedGuids, int32 &OutTrackedGuidMemoryBytes) const
Definition RepLayout.cpp:4226
TUniquePtr< FRepState > CreateRepState(const FConstRepObjectDataBuffer Source, TSharedPtr< FRepChangedPropertyTracker > &InRepChangedPropertyTracker, ECreateRepStateFlags Flags) const
Definition RepLayout.cpp:7301
const int32 GetParentCondition(int32 Index) const
Definition RepLayout.h:1521
bool ReceiveProperties_BackwardsCompatible(UNetConnection *Connection, FReceivingRepState *RESTRICT RepState, FRepObjectDataBuffer Data, FNetBitReader &InBunch, bool &bOutHasUnmapped, const bool bEnableRepNotifies, bool &bOutGuidsChanged, UObject *OwningObject=nullptr) const
Definition RepLayout.cpp:3872
uint32 GenerateChecksum(const FRepState *RepState) const
Definition RepLayout.cpp:4873
void ReceivePropertiesForRPC(UObject *Object, UFunction *Function, UActorChannel *Channel, FNetBitReader &Reader, FRepObjectDataBuffer Data, TSet< FNetworkGUID > &UnmappedGuids) const
Definition RepLayout.cpp:7080
void CallRepNotifies(FReceivingRepState *RepState, UObject *Object) const
Definition RepLayout.cpp:4661
ENGINE_API void SerializeObjectReplicatedProperties(UObject *Object, FBitArchive &Ar) const
Definition RepLayout.cpp:2300
UObject * GetOwner() const
Definition RepLayout.h:1436
T * GetShadowStateValue(FRepShadowDataBuffer Data, const FName PropertyName)
Definition RepLayout.h:1469
bool DiffStableProperties(TArray< FProperty * > *RepNotifies, TArray< UObject * > *ObjReferences, TRepDataBuffer< DstType > Destination, TConstRepDataBuffer< SrcType > Source) const
TSharedPtr< FReplicationChangelistMgr > CreateReplicationChangelistMgr(const UObject *InObject, const ECreateReplicationChangelistMgrFlags CreateFlags) const
Definition RepLayout.cpp:7280
Definition RepLayout.h:781
const FName CachedPropertyName
Definition RepLayout.h:799
int32 RepNotifyNumParams
Definition RepLayout.h:834
FProperty * Property
Definition RepLayout.h:797
int32 Offset
Definition RepLayout.h:810
int32 ArrayIndex
Definition RepLayout.h:807
uint16 CmdStart
Definition RepLayout.h:821
FRepParentCmd(FProperty *InProperty, int32 InArrayIndex)
Definition RepLayout.h:784
int32 ShadowOffset
Definition RepLayout.h:813
ERepParentFlags Flags
Definition RepLayout.h:836
ELifetimeRepNotifyCondition RepNotifyCondition
Definition RepLayout.h:827
uint16 CmdEnd
Definition RepLayout.h:824
ELifetimeCondition Condition
Definition RepLayout.h:826
Definition RepLayout.h:672
const FSendingRepState * GetSendingRepState() const
Definition RepLayout.h:704
FReceivingRepState * GetReceivingRepState()
Definition RepLayout.h:689
void CountBytes(FArchive &Ar) const
Definition RepLayout.cpp:8465
const FReceivingRepState * GetReceivingRepState() const
Definition RepLayout.h:694
FSendingRepState * GetSendingRepState()
Definition RepLayout.h:699
Definition RepLayout.h:502
const FRepChangelistState * GetRepChangelistState() const
Definition RepLayout.h:522
~FReplicationChangelistMgr()
Definition RepLayout.cpp:1251
FRepChangelistState * GetRepChangelistState()
Definition RepLayout.h:517
void CountBytes(FArchive &Ar) const
Definition RepLayout.cpp:1255
Definition RepLayout.h:568
TArray< FPropertyRetirement > Retirement
Definition RepLayout.h:641
TArray< TSharedPtr< INetDeltaBaseState > > CheckpointCustomDeltaState
Definition RepLayout.h:667
FRepChangedHistory ChangeHistory[MAX_CHANGE_HISTORY]
Definition RepLayout.h:638
int32 HistoryStart
Definition RepLayout.h:602
TArray< FRepChangedHistory > PreOpenAckHistory
Definition RepLayout.h:644
static TStaticBitArray< COND_Max > BuildConditionMapFromRepFlags(const FReplicationFlags InFlags)
Definition RepLayout.h:588
FReplicationFlags RepFlags
Definition RepLayout.h:630
TEnumAsByte< ENetRole > SavedRole
Definition RepLayout.h:599
TArray< TSharedPtr< INetDeltaBaseState > > RecentCustomDeltaState
Definition RepLayout.h:661
int32 LastCompareIndex
Definition RepLayout.h:625
TArray< uint16 > LifetimeChangelist
Definition RepLayout.h:647
bool bOpenAckedCalled
Definition RepLayout.h:593
int32 NumNaks
Definition RepLayout.h:608
static constexpr int32 MAX_CHANGE_HISTORY
Definition RepLayout.h:635
TArray< uint16 > InactiveChangelist
Definition RepLayout.h:655
uint32 CustomDeltaChangeIndex
Definition RepLayout.h:628
int32 LastChangelistIndex
Definition RepLayout.h:614
TArray< TSharedPtr< INetDeltaBaseState > > CDOCustomDeltaState
Definition RepLayout.h:664
TBitArray InactiveParents
Definition RepLayout.h:658
TEnumAsByte< ENetRole > SavedRemoteRole
Definition RepLayout.h:598
TSharedPtr< FRepChangedPropertyTracker > RepChangedPropertyTracker
Definition RepLayout.h:632
int32 HistoryEnd
Definition RepLayout.h:605
void CountBytes(FArchive &Ar) const
Definition RepLayout.cpp:8405
bool HasAnyPendingRetirements() const
Definition RepLayout.cpp:7212
Definition UnrealType.h:6306
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
UE_NODEBUG void CountBytes(FArchive &Ar) const
Definition Array.h:1649
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition EnumAsByte.h:22
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition StaticBitArray.h:75
Definition UniquePtr.h:107
void Reset(T *InPtr=nullptr)
Definition UniquePtr.h:346
bool IsValid() const
Definition UniquePtr.h:280
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
Definition ActorChannel.h:78
Definition Class.h:3793
Definition NetTokenStore.h:189
Definition Class.h:2476
Definition NetConnection.h:284
Definition Object.h:95
Definition PackageMapClient.h:465
Definition CoreNet.h:191
Definition Class.h:480
Definition NetworkVersion.cpp:28
TStaticBitArray< COND_Max > BuildConditionMapFromRepFlags(const FReplicationFlags &RepFlags)
Definition RepLayout.h:135
Definition RepLayout.cpp:134
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
CORE_API void Reset() override
Definition BitWriter.cpp:71
Definition RepLayout.cpp:550
Definition FastArraySerializer.h:1627
Definition CoreNet.h:643
Definition CoreNet.h:259
int32 First
Definition CoreNet.h:263
Definition RepLayout.h:241
const FRepSerializedPropertyInfo * WriteSharedProperty(const FRepLayoutCmd &Cmd, const FRepSharedPropertyKey &PropertyKey, const int32 CmdIndex, const uint16 Handle, const FConstRepObjectDataBuffer Data, const bool bWriteHandle, const bool bDoChecksum)
Definition RepLayout.cpp:2716
TArray< FRepSerializedPropertyInfo > SharedPropertyInfo
Definition RepLayout.h:305
UE::Net::FNetTokenExportContext::FNetTokenExports NetTokensPendingExport
Definition RepLayout.h:311
void SetValid()
Definition RepLayout.h:254
bool IsValid() const
Definition RepLayout.h:267
FRepSerializationSharedInfo()
Definition RepLayout.h:242
~FRepSerializationSharedInfo()
Definition RepLayout.h:246
void Reset()
Definition RepLayout.h:272
TUniquePtr< FNetBitWriter > SerializedProperties
Definition RepLayout.h:308
void CountBytes(FArchive &Ar) const
Definition RepLayout.cpp:2702
void Init()
Definition RepLayout.h:259
Definition RepLayout.h:215
int32 PropBitOffset
Definition RepLayout.h:233
int32 BitLength
Definition RepLayout.h:230
int32 PropBitLength
Definition RepLayout.h:236
FRepSerializedPropertyInfo()
Definition RepLayout.h:216
int32 BitOffset
Definition RepLayout.h:227
FRepSharedPropertyKey PropertyKey
Definition RepLayout.h:224
Definition RepLayout.h:173
FRepSharedPropertyKey(uint32 InCmdIndex, uint32 InArrayIndex, uint32 InArrayDepth, void *InDataPtr)
Definition RepLayout.h:189
FString ToDebugString() const
Definition RepLayout.h:197
FRepSharedPropertyKey()
Definition RepLayout.h:181
friend uint32 GetTypeHash(const FRepSharedPropertyKey &Key)
Definition RepLayout.h:207
friend bool operator==(const FRepSharedPropertyKey &A, const FRepSharedPropertyKey &B)
Definition RepLayout.h:202
Definition RepLayout.h:377
int32 Num() const
Definition RepLayout.h:407
void Empty()
Definition RepLayout.h:414
~FRepStateStaticBuffer()
Definition RepLayout.cpp:8486
const uint8 * GetData() const
Definition RepLayout.h:402
uint8 * GetData()
Definition RepLayout.h:397
void CountBytes(FArchive &Ar) const
Definition RepLayout.cpp:1049
FRepStateStaticBuffer(FRepStateStaticBuffer &&InStaticBuffer)
Definition RepLayout.h:389
Definition EngineTypes.h:3601
uint32 bNetSimulated
Definition EngineTypes.h:3611
uint32 bNetOwner
Definition EngineTypes.h:3607
uint32 bNetInitial
Definition EngineTypes.h:3609
uint32 bReplay
Definition EngineTypes.h:3615
uint32 bRepPhysics
Definition EngineTypes.h:3613
TRepDataBufferBase(ConstOrNotVoid *RESTRICT InDataBuffer)
Definition RepLayout.h:80
ConstOrNotType *RESTRICT Data
Definition RepLayout.h:99
friend TRepDataBufferBase operator+(TRepDataBufferBase InBuffer, int32 Offset)
Definition RepLayout.h:84
TCopyQualifiersFromTo_T< ConstOrNotType, void > ConstOrNotVoid
Definition RepLayout.h:76
static constexpr ERepDataBufferType Type
Definition RepLayout.h:75