80 return !bIsAcquiredByTask;
86 check(!bIsAcquiredByTask);
87 bIsAcquiredByTask =
true;
91 check(bIsAcquiredByTask);
92 bIsAcquiredByTask =
false;
100 bool bShouldIncludeSubObjectWithRoot =
false;
101 bool bIsAcquiredByTask =
false;
133 return Context.TypeStatsData[TypeStatsIndex];
165#if UE_NET_IRIS_CSV_STATS
167#define UE_NET_IRIS_STATS_ADD_TIME_AND_COUNT_FOR_OBJECT(Timer, StatName, ObjectIndex) \
169 if (UE::Net::Private::FNetStatsContext* LocalNetStatsContext = Timer.GetNetStatsContext()) \
171 uint32 CountIncrement = 0U; \
172 UE::Net::Private::FNetTypeStatsData& StatsData = UE::Net::Private::FNetStatsContext::GetTypeStatsDataForObject(*LocalNetStatsContext, ObjectIndex, CountIncrement); \
173 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Time += Timer.GetCyclesSinceStart(); \
174 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Count += CountIncrement; \
178#define UE_NET_IRIS_STATS_ADD_TIME_AND_COUNT_FOR_OBJECT_AS_WASTE(Timer, StatName, ObjectIndex) \
180 if (UE::Net::Private::FNetStatsContext* LocalNetStatsContext = Timer.GetNetStatsContext()) \
182 const uint64 DeltaTimeForStat = Timer.GetCyclesSinceStart(); \
183 uint32 CountIncrement = 0U; \
184 UE::Net::Private::FNetTypeStatsData& StatsData = UE::Net::Private::FNetStatsContext::GetTypeStatsDataForObject(*LocalNetStatsContext, ObjectIndex, CountIncrement); \
185 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Time += DeltaTimeForStat; \
186 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Count += CountIncrement; \
187 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName##Waste].Time += DeltaTimeForStat; \
188 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName##Waste].Count += CountIncrement; \
192#define UE_NET_IRIS_STATS_ADD_BITS_WRITTEN_AND_COUNT_FOR_OBJECT(NetStatsContext, BitCount, StatName, ObjectIndex) \
194 if (NetStatsContext) \
196 uint32 CountIncrement = 0U; \
197 UE::Net::Private::FNetTypeStatsData& StatsData = UE::Net::Private::FNetStatsContext::GetTypeStatsDataForObject(*NetStatsContext, ObjectIndex, CountIncrement); \
198 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Bits += BitCount; \
199 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Count += CountIncrement; \
203#define UE_NET_IRIS_STATS_ADD_BITS_WRITTEN_FOR_OBJECT(NetStatsContext, BitCount, StatName, ObjectIndex) \
205 if (NetStatsContext) \
207 UE::Net::Private::FNetTypeStatsData& StatsData = UE::Net::Private::FNetStatsContext::GetTypeStatsDataForObject(*NetStatsContext, ObjectIndex); \
208 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Bits += BitCount; \
212#define UE_NET_IRIS_STATS_ADD_BITS_WRITTEN_FOR_OBJECT_AS_WASTE(NetStatsContext, BitCount, StatName, ObjectIndex) \
214 if (NetStatsContext) \
216 UE::Net::Private::FNetTypeStatsData& StatsData = UE::Net::Private::FNetStatsContext::GetTypeStatsDataForObject(*NetStatsContext, ObjectIndex); \
217 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Bits += BitCount; \
218 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName##Waste].Bits += BitCount; \
223#define UE_NET_IRIS_STATS_INCREMENT_FOR_OBJECT(NetStatsContext, StatName, ObjectIndex) \
225 if (NetStatsContext) \
227 UE::Net::Private::FNetTypeStatsData& StatsData = UE::Net::Private::FNetStatsContext::GetTypeStatsDataForObject(*NetStatsContext, ObjectIndex); \
228 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Count++; \
233#define UE_NET_IRIS_STATS_ADD_COUNT_FOR_OBJECT(NetStatsContext, StatName, ObjectIndex, CountToAdd) \
235 if (NetStatsContext) \
237 UE::Net::Private::FNetTypeStatsData& StatsData = UE::Net::Private::FNetStatsContext::GetTypeStatsDataForObject(*NetStatsContext, ObjectIndex); \
238 StatsData.Values[UE::Net::Private::FNetTypeStatsData::EStatsIndex::StatName].Count += CountToAdd; \
244#define UE_NET_IRIS_STATS_ADD_TIME_AND_COUNT_FOR_OBJECT(...)
245#define UE_NET_IRIS_STATS_ADD_TIME_AND_COUNT_FOR_OBJECT_AS_WASTE(...)
246#define UE_NET_IRIS_STATS_ADD_BITS_WRITTEN_AND_COUNT_FOR_OBJECT(...)
247#define UE_NET_IRIS_STATS_ADD_BITS_WRITTEN_FOR_OBJECT(...)
248#define UE_NET_IRIS_STATS_ADD_BITS_WRITTEN_FOR_OBJECT_AS_WASTE(...)
249#define UE_NET_IRIS_STATS_INCREMENT_FOR_OBJECT(...)
250#define UE_NET_IRIS_STATS_ADD_COUNT_FOR_OBJECT(...)
255#if UE_NET_IRIS_CSV_STATS || UE_NET_TRACE_ENABLED
257#define UE_NET_IRIS_STATS_TIMER(TimerName, NetStatsContext) UE::Net::Private::FNetStatsTimer TimerName(NetStatsContext);
261#define UE_NET_IRIS_STATS_TIMER(...)
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
int32 InternalIndex
Definition VulkanMemory.cpp:4036
Definition NetRefHandleManager.h:72
Definition NetStatsContext.h:62
void Release()
Definition NetStatsContext.h:89
void Acquire()
Definition NetStatsContext.h:84
static FNetTypeStatsData & GetTypeStatsDataForObject(FNetStatsContext &Context, FInternalNetRefIndex InternalIndex, uint32 &OutUpdateCount)
Definition NetStatsContext.h:144
bool CanAcquire() const
Definition NetStatsContext.h:78
FNetStatsContext(const FNetStatsContext &)=delete
FNetStatsContext & operator=(const FNetStatsContext &)=delete
static FNetTypeStatsData & GetTypeStatsData(FNetStatsContext &Context, const FNetRefHandleManager::FReplicatedObjectData &ObjectData, bool bTreatAsRoot)
Definition NetStatsContext.h:120
void ResetStats(int32 NumTypeStats)
Definition NetStatsContext.h:153
Definition NetStatsContext.h:105
FNetStatsContext * GetNetStatsContext() const
Definition NetStatsContext.h:114
FNetStatsTimer(FNetStatsContext *InStatsContext)
Definition NetStatsContext.h:107
Definition NetTraceInternal.h:11
Definition NetStats.h:168
static constexpr int32 OOBChannelTypeStatsIndex
Definition NetStats.h:178
static constexpr int32 DefaultTypeStatsIndex
Definition NetStats.h:177
Definition NetworkVersion.cpp:28
uint32 FInternalNetRefIndex
Definition ReplicationStateStorage.h:20
U16 Index
Definition radfft.cpp:71
int32 TypeStatsIndex
Definition ReplicationProtocol.h:125
Definition NetRefHandleManager.h:80
bool IsSubObject() const
Definition NetRefHandleManager.h:127
const FReplicationProtocol * Protocol
Definition NetRefHandleManager.h:89
FInternalNetRefIndex SubObjectRootIndex
Definition NetRefHandleManager.h:94
Definition NetStatsContext.h:31
uint32 Bits
Definition NetStatsContext.h:39
uint64 Time
Definition NetStatsContext.h:38
void Accumulate(const FStatsValue &Other)
Definition NetStatsContext.h:32
uint32 Count
Definition NetStatsContext.h:40
Definition NetStatsContext.h:16
FStatsValue Values[EStatsIndex::Count]
Definition NetStatsContext.h:58
EStatsIndex
Definition NetStatsContext.h:18
@ WriteWaste
Definition NetStatsContext.h:24
@ Count
Definition NetStatsContext.h:27
@ PreUpdate
Definition NetStatsContext.h:19
@ Write
Definition NetStatsContext.h:23
@ WriteExports
Definition NetStatsContext.h:26
@ Poll
Definition NetStatsContext.h:20
@ PollWaste
Definition NetStatsContext.h:21
@ WriteCreationInfo
Definition NetStatsContext.h:25
@ Quantize
Definition NetStatsContext.h:22
void Accumulate(const FNetTypeStatsData &Other)
Definition NetStatsContext.h:50
void Reset()
Definition NetStatsContext.h:44