Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,14 @@
using Unity.Multiplayer.Tools.MetricTypes;
using Unity.Multiplayer.Tools.NetStats;
using Unity.Profiling;
using UnityEngine;

namespace Unity.Netcode
{
internal class NetworkMetrics : INetworkMetrics
{
const ulong k_MaxMetricsPerFrame = 1000L;

static Dictionary<uint, string> s_SceneEventTypeNames;

static ProfilerMarker s_FrameDispatch = new ProfilerMarker($"{nameof(NetworkMetrics)}.DispatchFrame");
private const ulong k_MaxMetricsPerFrame = 1000L;
private static Dictionary<uint, string> s_SceneEventTypeNames;
private static ProfilerMarker s_FrameDispatch = new ProfilerMarker($"{nameof(NetworkMetrics)}.DispatchFrame");

static NetworkMetrics()
{
Expand Down Expand Up @@ -531,7 +528,7 @@ private static NetworkObjectIdentifier GetObjectIdentifier(NetworkObject network
}
}

internal class NetcodeObserver
internal class NetcodeObserver
{
public static IMetricObserver Observer { get; } = MetricObserverFactory.Construct();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Unity.Netcode
{
class NetworkObjectProvider : INetworkObjectProvider
internal class NetworkObjectProvider : INetworkObjectProvider
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't help but ask this again - are we ever going to support unity's coding standards? Practically everywhere else that c# code is written, you're not supposed to add extraneous access modifiers. (Not blocking this PR with this question ofc)

{
private readonly NetworkManager m_NetworkManager;

Expand All @@ -15,7 +15,7 @@ public NetworkObjectProvider(NetworkManager networkManager)

public Object GetNetworkObject(ulong networkObjectId)
{
if(m_NetworkManager.SpawnManager.SpawnedObjects.TryGetValue(networkObjectId, out NetworkObject value))
if (m_NetworkManager.SpawnManager.SpawnedObjects.TryGetValue(networkObjectId, out NetworkObject value))
{
return value;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,24 @@
using Unity.Burst;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Networking.Transport;
using UnityEngine;

namespace Unity.Netcode.Transports.UTP
{
[BurstCompile]
internal unsafe struct NetworkMetricsPipelineStage : INetworkPipelineStage
{
static TransportFunctionPointer<NetworkPipelineStage.ReceiveDelegate> ReceiveFunction = new TransportFunctionPointer<NetworkPipelineStage.ReceiveDelegate>(Receive);
static TransportFunctionPointer<NetworkPipelineStage.SendDelegate> SendFunction = new TransportFunctionPointer<NetworkPipelineStage.SendDelegate>(Send);
static TransportFunctionPointer<NetworkPipelineStage.InitializeConnectionDelegate> InitializeConnectionFunction = new TransportFunctionPointer<NetworkPipelineStage.InitializeConnectionDelegate>(InitializeConnection);
private static TransportFunctionPointer<NetworkPipelineStage.ReceiveDelegate> s_ReceiveFunction = new TransportFunctionPointer<NetworkPipelineStage.ReceiveDelegate>(Receive);
private static TransportFunctionPointer<NetworkPipelineStage.SendDelegate> s_SendFunction = new TransportFunctionPointer<NetworkPipelineStage.SendDelegate>(Send);
private static TransportFunctionPointer<NetworkPipelineStage.InitializeConnectionDelegate> s_InitializeConnectionFunction = new TransportFunctionPointer<NetworkPipelineStage.InitializeConnectionDelegate>(InitializeConnection);

public NetworkPipelineStage StaticInitialize(byte* staticInstanceBuffer,
int staticInstanceBufferLength,
NetworkSettings settings)
{
return new NetworkPipelineStage(
ReceiveFunction,
SendFunction,
InitializeConnectionFunction,
s_ReceiveFunction,
s_SendFunction,
s_InitializeConnectionFunction,
ReceiveCapacity: 0,
SendCapacity: 0,
HeaderCapacity: 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -895,7 +895,7 @@ private void ExtractNetworkMetrics()

private void ExtractNetworkMetricsForClient(ulong transportClientId)
{
var networkConnection = ParseClientId(transportClientId);
var networkConnection = ParseClientId(transportClientId);
ExtractNetworkMetricsFromPipeline(m_UnreliableFragmentedPipeline, networkConnection);
ExtractNetworkMetricsFromPipeline(m_UnreliableSequencedFragmentedPipeline, networkConnection);
ExtractNetworkMetricsFromPipeline(m_ReliableSequencedPipeline, networkConnection);
Expand Down Expand Up @@ -1391,7 +1391,7 @@ public void CreateDriver(UnityTransport transport, out NetworkDriver driver,
, typeof(SimulatorPipelineStageInSend)
#endif
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7
,typeof(NetworkMetricsPipelineStage)
, typeof(NetworkMetricsPipelineStage)
#endif
);
reliableSequencedPipeline = driver.CreatePipeline(
Expand All @@ -1401,7 +1401,7 @@ public void CreateDriver(UnityTransport transport, out NetworkDriver driver,
, typeof(SimulatorPipelineStageInSend)
#endif
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7
,typeof(NetworkMetricsPipelineStage)
, typeof(NetworkMetricsPipelineStage)
#endif
);
}
Expand All @@ -1411,20 +1411,20 @@ public void CreateDriver(UnityTransport transport, out NetworkDriver driver,
unreliableFragmentedPipeline = driver.CreatePipeline(
typeof(FragmentationPipelineStage)
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7
,typeof(NetworkMetricsPipelineStage)
, typeof(NetworkMetricsPipelineStage)
#endif
);
unreliableSequencedFragmentedPipeline = driver.CreatePipeline(
typeof(FragmentationPipelineStage),
typeof(UnreliableSequencedPipelineStage)
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7
,typeof(NetworkMetricsPipelineStage)
, typeof(NetworkMetricsPipelineStage)
#endif
);
reliableSequencedPipeline = driver.CreatePipeline(
typeof(ReliableSequencedPipelineStage)
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7
,typeof(NetworkMetricsPipelineStage)
, typeof(NetworkMetricsPipelineStage)
#endif
);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
#if MULTIPLAYER_TOOLS
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using NUnit.Framework;
using Unity.Multiplayer.Tools.MetricTypes;
using Unity.Multiplayer.Tools.NetStats;

namespace Unity.Netcode.TestHelpers.Runtime.Metrics
{
internal class WaitForEventMetricValues<TMetric> : WaitForMetricValues<TMetric>
{
IReadOnlyCollection<TMetric> m_EventValues;
private IReadOnlyCollection<TMetric> m_EventValues;

public delegate bool EventFilter(TMetric metric);
EventFilter m_EventFilterDelegate;

private EventFilter m_EventFilterDelegate;

public WaitForEventMetricValues(IMetricDispatcher dispatcher, DirectionalMetricInfo directionalMetricName)
: base(dispatcher, directionalMetricName)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ namespace Unity.Netcode.EditorTests.Metrics
{
public class NetworkMetricsRegistrationTests
{
static Type[] s_MetricTypes = AppDomain.CurrentDomain.GetAssemblies()
private static Type[] s_MetricTypes = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(x => x.GetTypes())
.Where(x => x.GetInterfaces().Contains(typeof(INetworkMetricEvent)))
.ToArray();

[TestCaseSource(nameof(s_MetricTypes))][Ignore("Disable test while we reevaluate the assumption that INetworkMetricEvent interfaces must be reported from MLAPI.")]
[TestCaseSource(nameof(s_MetricTypes))]
[Ignore("Disable test while we reevaluate the assumption that INetworkMetricEvent interfaces must be reported from MLAPI.")]
public void ValidateThatAllMetricTypesAreRegistered(Type metricType)
{
var dispatcher = new NetworkMetrics().Dispatcher as MetricDispatcher;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7

using System.Collections;
using System.Collections.Generic;
using NUnit.Framework;
using Unity.Multiplayer.Tools.MetricTypes;
using Unity.Netcode.TestHelpers.Runtime;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
using Unity.Multiplayer.Tools.NetStats;
using UnityEngine.TestTools;
using Unity.Netcode.TestHelpers.Runtime;
using Unity.Netcode.TestHelpers.Runtime.Metrics;

namespace Unity.Netcode.RuntimeTests.Metrics
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#if MULTIPLAYER_TOOLS
using System;
using System.Collections;
using System.Linq;
using NUnit.Framework;
Expand Down Expand Up @@ -36,7 +35,7 @@ protected override void OnServerAndClientsCreated()
private NetworkObject SpawnNetworkObject()
{
// Spawn another network object so we can hide multiple.
var gameObject = UnityEngine.Object.Instantiate(m_NewNetworkPrefab); // new GameObject(NewNetworkObjectName);
var gameObject = Object.Instantiate(m_NewNetworkPrefab); // new GameObject(NewNetworkObjectName);
var networkObject = gameObject.GetComponent<NetworkObject>();
networkObject.NetworkManagerOwner = Server;
networkObject.Spawn();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
#if MULTIPLAYER_TOOLS
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7

using System;
using System.Collections;
using NUnit.Framework;
using Unity.Collections;
using Unity.Multiplayer.Tools.MetricTypes;
using Unity.Netcode.TestHelpers.Runtime;
using Unity.Netcode.TestHelpers.Runtime.Metrics;
using Unity.Netcode.Transports.UTP;
using UnityEngine;
using UnityEngine.TestTools;

namespace Unity.Netcode.RuntimeTests.Metrics
Expand All @@ -22,7 +20,7 @@ public class PacketLossMetricsTests : NetcodeIntegrationTest

public PacketLossMetricsTests()
: base(HostOrServer.Server)
{}
{ }

protected override void OnServerAndClientsCreated()
{
Expand All @@ -41,11 +39,9 @@ public IEnumerator TrackPacketLossAsServer()

for (int i = 0; i < 1000; ++i)
{
using (var writer = new FastBufferWriter(sizeof(byte), Allocator.Persistent))
{
writer.WriteByteSafe(42);
m_ServerNetworkManager.CustomMessagingManager.SendNamedMessage("Test", m_ServerNetworkManager.ConnectedClientsIds, writer);
}
using var writer = new FastBufferWriter(sizeof(byte), Allocator.Persistent);
writer.WriteByteSafe(42);
m_ServerNetworkManager.CustomMessagingManager.SendNamedMessage("Test", m_ServerNetworkManager.ConnectedClientsIds, writer);
}

yield return waitForPacketLossMetric.WaitForMetricsReceived();
Expand All @@ -60,7 +56,7 @@ public IEnumerator TrackPacketLossAsServer()
#endif
public IEnumerator TrackPacketLossAsClient()
{
double packetLossRateMinRange = (m_PacketLossRate-m_PacketLossRangeDelta) / 100d;
double packetLossRateMinRange = (m_PacketLossRate - m_PacketLossRangeDelta) / 100d;
double packetLossRateMaxrange = (m_PacketLossRate + m_PacketLossRangeDelta) / 100d;
var clientNetworkManager = m_ClientNetworkManagers[0];
var waitForPacketLossMetric = new WaitForGaugeMetricValues((clientNetworkManager.NetworkMetrics as NetworkMetrics).Dispatcher,
Expand All @@ -69,11 +65,9 @@ public IEnumerator TrackPacketLossAsClient()

for (int i = 0; i < 1000; ++i)
{
using (var writer = new FastBufferWriter(sizeof(byte), Allocator.Persistent))
{
writer.WriteByteSafe(42);
m_ServerNetworkManager.CustomMessagingManager.SendNamedMessage("Test", m_ServerNetworkManager.ConnectedClientsIds, writer);
}
using var writer = new FastBufferWriter(sizeof(byte), Allocator.Persistent);
writer.WriteByteSafe(42);
m_ServerNetworkManager.CustomMessagingManager.SendNamedMessage("Test", m_ServerNetworkManager.ConnectedClientsIds, writer);
}

yield return waitForPacketLossMetric.WaitForMetricsReceived();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
using Unity.Collections;
using Unity.Multiplayer.Tools.MetricTypes;
using UnityEngine.TestTools;
using Unity.Netcode.TestHelpers.Runtime;
using Unity.Netcode.TestHelpers.Runtime.Metrics;

namespace Unity.Netcode.RuntimeTests.Metrics
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public IEnumerator TrackRpcSentMetricOnServerToOnlyOneClientWithArray()
{
Send = new ClientRpcSendParams
{
TargetClientIds = new []{FirstClient.LocalClientId}
TargetClientIds = new[] { FirstClient.LocalClientId }
}
});

Expand All @@ -50,7 +50,7 @@ public IEnumerator TrackRpcSentMetricOnServerToOnlyOneClientWithNativeArray()
{
Send = new ClientRpcSendParams
{
TargetClientIdsNativeArray = new NativeArray<ulong>(new []{FirstClient.LocalClientId}, Allocator.Temp)
TargetClientIdsNativeArray = new NativeArray<ulong>(new[] { FirstClient.LocalClientId }, Allocator.Temp)
}
});

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#if MULTIPLAYER_TOOLS
using System;
using System.Collections;
using System.IO;
using NUnit.Framework;
using Unity.Collections;
using Unity.Multiplayer.Tools.MetricTypes;
Expand All @@ -15,7 +14,7 @@ internal class TransportBytesMetricsTests : SingleClientMetricTestBase
{
// Header is dynamically sized due to packing, will be 2 bytes for all test messages.
private const int k_MessageHeaderSize = 2;
static readonly long MessageOverhead = 8 + FastBufferWriter.GetWriteSize<BatchHeader>() + k_MessageHeaderSize;
private static readonly long k_MessageOverhead = 8 + FastBufferWriter.GetWriteSize<BatchHeader>() + k_MessageHeaderSize;

[UnityTest]
public IEnumerator TrackTotalNumberOfBytesSent()
Expand All @@ -42,7 +41,7 @@ public IEnumerator TrackTotalNumberOfBytesSent()
}

Assert.True(observer.Found);
Assert.AreEqual(FastBufferWriter.GetWriteSize(messageName) + MessageOverhead, observer.Value);
Assert.AreEqual(FastBufferWriter.GetWriteSize(messageName) + k_MessageOverhead, observer.Value);
}

[UnityTest]
Expand Down Expand Up @@ -72,7 +71,7 @@ public IEnumerator TrackTotalNumberOfBytesReceived()
}

Assert.True(observer.Found);
Assert.AreEqual(FastBufferWriter.GetWriteSize(messageName) + MessageOverhead, observer.Value);
Assert.AreEqual(FastBufferWriter.GetWriteSize(messageName) + k_MessageOverhead, observer.Value);
}

private class TotalBytesObserver : IMetricObserver
Expand Down