1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- using System;
- using System.Threading;
- namespace Best.HTTP.Profiler.Network
- {
- public static class NetworkStatsCollector
- {
- public static long TotalNetworkBytesReceived { get => _totalNetworkBytesReceived; }
- private static long _totalNetworkBytesReceived;
-
- public static long TotalNetworkBytesSent { get => _totalNetworkBytesSent; }
- private static long _totalNetworkBytesSent;
- public static int TotalConnections { get => _totalConnections; }
- private static int _totalConnections;
- public static int OpenConnections { get => _openConnections; }
- private static int _openConnections;
- public static int BufferedToSend { get => _bufferedToSend; }
- private static int _bufferedToSend;
- public static int ReceivedAndUnprocessed { get => _receivedAndUnprocessed; }
- private static int _receivedAndUnprocessed;
- internal static void IncrementCurrentConnections()
- {
- Interlocked.Increment(ref _totalConnections);
- Interlocked.Increment(ref _openConnections);
- }
- internal static void DecrementCurrentConnections() => Interlocked.Decrement(ref _openConnections);
- internal static void IncrementTotalNetworkBytesReceived(int amount) => Interlocked.Add(ref _totalNetworkBytesReceived, amount);
- internal static void IncrementTotalNetworkBytesSent(int amount) => Interlocked.Add(ref _totalNetworkBytesSent, amount);
- internal static void IncrementBufferedToSend(int amount) => Interlocked.Add(ref _bufferedToSend, amount);
- internal static void IncrementReceivedAndUnprocessed(int amount) => Interlocked.Add(ref _receivedAndUnprocessed, amount);
- internal static void ResetNetworkStats()
- {
- Interlocked.Exchange(ref _totalNetworkBytesReceived, 0);
- Interlocked.Exchange(ref _totalNetworkBytesSent, 0);
- Interlocked.Exchange(ref _totalConnections, 0);
- Interlocked.Exchange(ref _openConnections, 0);
- Interlocked.Exchange(ref _bufferedToSend, 0);
- Interlocked.Exchange(ref _receivedAndUnprocessed, 0);
- }
- }
- }
|