12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System;
- namespace Mirror
- {
- /// <summary>Profiling statistics for tool to subscribe to (profiler etc.)</summary>
- public static class NetworkDiagnostics
- {
- /// <summary>Describes an outgoing message</summary>
- public readonly struct MessageInfo
- {
- /// <summary>The message being sent</summary>
- public readonly NetworkMessage message;
- /// <summary>channel through which the message was sent</summary>
- public readonly int channel;
- /// <summary>how big was the message (does not include transport headers)</summary>
- public readonly int bytes;
- /// <summary>How many connections was the message sent to.</summary>
- public readonly int count;
- internal MessageInfo(NetworkMessage message, int channel, int bytes, int count)
- {
- this.message = message;
- this.channel = channel;
- this.bytes = bytes;
- this.count = count;
- }
- }
- /// <summary>Event for when Mirror sends a message. Can be subscribed to.</summary>
- public static event Action<MessageInfo> OutMessageEvent;
- internal static void OnSend<T>(T message, int channel, int bytes, int count)
- where T : struct, NetworkMessage
- {
- if (count > 0 && OutMessageEvent != null)
- {
- MessageInfo outMessage = new MessageInfo(message, channel, bytes, count);
- OutMessageEvent?.Invoke(outMessage);
- }
- }
- /// <summary>Event for when Mirror receives a message. Can be subscribed to.</summary>
- public static event Action<MessageInfo> InMessageEvent;
- internal static void OnReceive<T>(T message, int channel, int bytes)
- where T : struct, NetworkMessage
- {
- if (InMessageEvent != null)
- {
- MessageInfo inMessage = new MessageInfo(message, channel, bytes, 1);
- InMessageEvent?.Invoke(inMessage);
- }
- }
- }
- }
|