Skip to content

Experimental/netstats/review fixes #970

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
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 @@ -14,7 +14,6 @@
using MLAPI.Serialization.Pooled;
using MLAPI.Transports;
using Unity.Profiling;
using Debug = UnityEngine.Debug;

namespace MLAPI
{
Expand Down
17 changes: 2 additions & 15 deletions com.unity.multiplayer.mlapi/Runtime/Core/NetworkManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ public ulong LocalClientId
/// </summary>
public string ConnectedHostname { get; private set; }

public INetworkMetrics NetworkMetrics { get; private set; }
internal INetworkMetrics NetworkMetrics { get; private set; }

internal static event Action OnSingletonReady;

Expand Down Expand Up @@ -351,19 +351,6 @@ private void Initialize(bool server)

SceneManager = new NetworkSceneManager(this);

m_RpcBatcher = new RpcBatcher(this);

if (MessageHandler == null)
{
IInternalMessageHandler messageHandler = new InternalMessageHandler(this);

#if DEVELOPMENT_BUILD || UNITY_EDITOR
messageHandler = new InternalMessageHandlerProfilingDecorator(messageHandler);
#endif
// Only create this if it's not already set (like in test cases)
MessageHandler = messageHandler;
}

// Only create this if it's not already set (like in test cases)
MessageHandler ??= CreateMessageHandler();

Expand Down Expand Up @@ -1153,7 +1140,7 @@ private void HandleRawTransportPoll(NetworkEvent networkEvent, ulong clientId, N
}

private readonly NetworkBuffer m_InputBufferWrapper = new NetworkBuffer(new byte[0]);
private RpcBatcher m_RpcBatcher;
private readonly RpcBatcher m_RpcBatcher = new RpcBatcher();

internal void HandleIncomingData(ulong clientId, NetworkChannel networkChannel, ArraySegment<byte> data, float receiveTime, bool allowBuffer)
{
Expand Down
7 changes: 0 additions & 7 deletions com.unity.multiplayer.mlapi/Runtime/Messaging/RpcBatcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,6 @@ public SendStream()
// Used to mark longer lengths. Works because we can't have zero-sized messages
private const byte k_LongLenMarker = 0;

private readonly NetworkManager m_NetworkManager;

public RpcBatcher(NetworkManager networkManager)
{
m_NetworkManager = networkManager;
}

private void PushLength(int length, ref PooledNetworkWriter writer)
{
// If length is single byte we write it
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ internal RpcQueueProcessor(RpcQueueContainer rpcQueueContainer, NetworkManager n
{
m_RpcQueueContainer = rpcQueueContainer;
m_NetworkManager = networkManager;
m_RpcBatcher = new RpcBatcher(networkManager);
m_RpcBatcher = new RpcBatcher();
}
}
}
20 changes: 8 additions & 12 deletions com.unity.multiplayer.mlapi/Runtime/Metrics/NetworkMetrics.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,24 @@ namespace MLAPI.Metrics
{
public class NetworkMetrics : INetworkMetrics
{
private readonly NetworkManager m_NetworkManager;
readonly NetworkManager m_NetworkManager;

readonly EventMetric<NamedMessageEvent> m_NamedMessageSentEvent = new EventMetric<NamedMessageEvent>(MetricNames.NamedMessageSent);
readonly EventMetric<NamedMessageEvent> m_NamedMessageReceivedEvent = new EventMetric<NamedMessageEvent>(MetricNames.NamedMessageReceived);

readonly EventMetric<UnnamedMessageEvent> m_UnnamedMessageSentEvent = new EventMetric<UnnamedMessageEvent>(MetricNames.UnnamedMessageSent);
readonly EventMetric<UnnamedMessageEvent> m_UnnamedMessageReceivedEvent = new EventMetric<UnnamedMessageEvent>(MetricNames.UnnamedMessageReceived);

readonly EventMetric<NetworkVariableEvent> m_NetworkVariableDeltaSentEvent = new EventMetric<NetworkVariableEvent>(MetricNames.NetworkVariableDeltaSent);
readonly EventMetric<NetworkVariableEvent> m_NetworkVariableDeltaReceivedEvent = new EventMetric<NetworkVariableEvent>(MetricNames.NetworkVariableDeltaReceived);

private readonly EventMetric<ObjectSpawnedEvent> m_ObjectSpawnSentEvent = new EventMetric<ObjectSpawnedEvent>(MetricNames.ObjectSpawnedSent);
private readonly EventMetric<ObjectSpawnedEvent> m_ObjectSpawnReceivedEvent = new EventMetric<ObjectSpawnedEvent>(MetricNames.ObjectSpawnedReceived);
private readonly EventMetric<ObjectDestroyedEvent> m_ObjectDestroySentEvent = new EventMetric<ObjectDestroyedEvent>(MetricNames.ObjectDestroyedSent);
private readonly EventMetric<ObjectDestroyedEvent> m_ObjectDestroyReceivedEvent = new EventMetric<ObjectDestroyedEvent>(MetricNames.ObjectDestroyedReceived);
private readonly EventMetric<ServerLogEvent> m_ServerLogSentEvent = new EventMetric<ServerLogEvent>(MetricNames.ServerLogSent);
private readonly EventMetric<ServerLogEvent> m_ServerLogReceivedEvent = new EventMetric<ServerLogEvent>(MetricNames.ServerLogReceived);

readonly EventMetric<ObjectSpawnedEvent> m_ObjectSpawnSentEvent = new EventMetric<ObjectSpawnedEvent>(MetricNames.ObjectSpawnedSent);
readonly EventMetric<ObjectSpawnedEvent> m_ObjectSpawnReceivedEvent = new EventMetric<ObjectSpawnedEvent>(MetricNames.ObjectSpawnedReceived);
readonly EventMetric<ObjectDestroyedEvent> m_ObjectDestroySentEvent = new EventMetric<ObjectDestroyedEvent>(MetricNames.ObjectDestroyedSent);
readonly EventMetric<ObjectDestroyedEvent> m_ObjectDestroyReceivedEvent = new EventMetric<ObjectDestroyedEvent>(MetricNames.ObjectDestroyedReceived);
readonly EventMetric<RpcEvent> m_RpcSentEvent = new EventMetric<RpcEvent>(MetricNames.RpcSent);
readonly EventMetric<RpcEvent> m_RpcReceivedEvent = new EventMetric<RpcEvent>(MetricNames.RpcReceived);
readonly EventMetric<ServerLogEvent> m_ServerLogSentEvent = new EventMetric<ServerLogEvent>(MetricNames.ServerLogSent);
readonly EventMetric<ServerLogEvent> m_ServerLogReceivedEvent = new EventMetric<ServerLogEvent>(MetricNames.ServerLogReceived);

private Dictionary<ulong, NetworkObjectIdentifier> m_NetworkGameObjects = new Dictionary<ulong, NetworkObjectIdentifier>();
readonly Dictionary<ulong, NetworkObjectIdentifier> m_NetworkGameObjects = new Dictionary<ulong, NetworkObjectIdentifier>();

public NetworkMetrics(NetworkManager networkManager)
{
Expand Down

This file was deleted.

14 changes: 4 additions & 10 deletions com.unity.multiplayer.mlapi/Tests/Editor/RpcBatcherTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@ public void SendWithThreshold()
const int k_BatchThreshold = 256;
const int k_QueueItemCount = 128;

var gameObject = new GameObject("NetworkManager");
var networkManager = gameObject.AddComponent<NetworkManager>();

var sendBatcher = new RpcBatcher(networkManager);
var sendBatcher = new RpcBatcher();
var sendStreamQueue = new Queue<NetworkBuffer>();
for (int i = 0; i < k_QueueItemCount; ++i)
{
Expand Down Expand Up @@ -52,7 +49,7 @@ public void SendWithThreshold()
sendStreamQueue.Enqueue(queueStream);
});

var recvBatcher = new RpcBatcher(networkManager);
var recvBatcher = new RpcBatcher();
var recvItemCounter = 0;
foreach (var recvStream in sendStreamQueue)
{
Expand All @@ -78,10 +75,7 @@ public void SendWithoutThreshold()
const int k_BatchThreshold = 0;
const int k_QueueItemCount = 128;

var gameObject = new GameObject("NetworkManager");
var networkManager = gameObject.AddComponent<NetworkManager>();

var sendBatcher = new RpcBatcher(networkManager);
var sendBatcher = new RpcBatcher();
var sendStreamQueue = new Queue<NetworkBuffer>();
for (int i = 0; i < k_QueueItemCount; ++i)
{
Expand Down Expand Up @@ -113,7 +107,7 @@ public void SendWithoutThreshold()
sendStreamQueue.Enqueue(queueStream);
});

var recvBatcher = new RpcBatcher(networkManager);
var recvBatcher = new RpcBatcher();
var recvItemCounter = 0;
foreach (var recvStream in sendStreamQueue)
{
Expand Down
Loading