package net.minecraft.network; import java.util.concurrent.atomic.AtomicReference; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.MarkerManager; public class NetworkStatistics { private static final Logger LOGGER = LogManager.getLogger(); private static final Marker NETSTAT_MARKER = MarkerManager.getMarker("NETSTAT_MARKER", NetworkManager.logMarkerStat); private NetworkStatistics.Tracker field_152480_c = new NetworkStatistics.Tracker(); private NetworkStatistics.Tracker field_152481_d = new NetworkStatistics.Tracker(); private static final String __OBFID = "CL_00001897"; public void func_152469_a(int p_152469_1_, long p_152469_2_) { this.field_152480_c.func_152488_a(p_152469_1_, p_152469_2_); } public void func_152464_b(int p_152464_1_, long p_152464_2_) { this.field_152481_d.func_152488_a(p_152464_1_, p_152464_2_); } public long func_152465_a() { return this.field_152480_c.func_152485_a(); } public long func_152471_b() { return this.field_152481_d.func_152485_a(); } public long func_152472_c() { return this.field_152480_c.func_152489_b(); } public long func_152473_d() { return this.field_152481_d.func_152489_b(); } public NetworkStatistics.PacketStat func_152477_e() { return this.field_152480_c.func_152484_c(); } public NetworkStatistics.PacketStat func_152467_f() { return this.field_152480_c.func_152486_d(); } public NetworkStatistics.PacketStat func_152475_g() { return this.field_152481_d.func_152484_c(); } public NetworkStatistics.PacketStat func_152470_h() { return this.field_152481_d.func_152486_d(); } public NetworkStatistics.PacketStat func_152466_a(int p_152466_1_) { return this.field_152480_c.func_152487_a(p_152466_1_); } public NetworkStatistics.PacketStat func_152468_b(int p_152468_1_) { return this.field_152481_d.func_152487_a(p_152468_1_); } public static class PacketStat { private final int packetId; private final NetworkStatistics.PacketStatData data; private static final String __OBFID = "CL_00001895"; public PacketStat(int id, NetworkStatistics.PacketStatData statData) { this.packetId = id; this.data = statData; } public String toString() { return "PacketStat(" + this.packetId + ")" + this.data; } } static class PacketStatData { private final long totalBytes; private final int count; private final double averageBytes; private static final String __OBFID = "CL_00001893"; private PacketStatData(long p_i1184_1_, int p_i1184_3_, double p_i1184_4_) { this.totalBytes = p_i1184_1_; this.count = p_i1184_3_; this.averageBytes = p_i1184_4_; } public NetworkStatistics.PacketStatData func_152494_a(long p_152494_1_) { return new NetworkStatistics.PacketStatData(p_152494_1_ + this.totalBytes, this.count + 1, (double)((p_152494_1_ + this.totalBytes) / (long)(this.count + 1))); } public long getTotalBytes() { return this.totalBytes; } public int getCount() { return this.count; } public String toString() { return "{totalBytes=" + this.totalBytes + ", count=" + this.count + ", averageBytes=" + this.averageBytes + '}'; } PacketStatData(long p_i1185_1_, int p_i1185_3_, double p_i1185_4_, Object p_i1185_6_) { this(p_i1185_1_, p_i1185_3_, p_i1185_4_); } } static class Tracker { private AtomicReference[] field_152490_a = new AtomicReference[100]; private static final String __OBFID = "CL_00001894"; public Tracker() { for (int i = 0; i < 100; ++i) { this.field_152490_a[i] = new AtomicReference(new NetworkStatistics.PacketStatData(0L, 0, 0.0D, null)); } } public void func_152488_a(int p_152488_1_, long p_152488_2_) { try { if (p_152488_1_ < 0 || p_152488_1_ >= 100) { return; } NetworkStatistics.PacketStatData packetstatdata; NetworkStatistics.PacketStatData packetstatdata1; do { packetstatdata = (NetworkStatistics.PacketStatData)this.field_152490_a[p_152488_1_].get(); packetstatdata1 = packetstatdata.func_152494_a(p_152488_2_); } while (!this.field_152490_a[p_152488_1_].compareAndSet(packetstatdata, packetstatdata1)); } catch (Exception exception) { if (NetworkStatistics.LOGGER.isDebugEnabled()) { NetworkStatistics.LOGGER.debug(NetworkStatistics.NETSTAT_MARKER, "NetStat failed with packetId: " + p_152488_1_, exception); } } } public long func_152485_a() { long i = 0L; for (int j = 0; j < 100; ++j) { i += ((NetworkStatistics.PacketStatData)this.field_152490_a[j].get()).getTotalBytes(); } return i; } public long func_152489_b() { long i = 0L; for (int j = 0; j < 100; ++j) { i += (long)((NetworkStatistics.PacketStatData)this.field_152490_a[j].get()).getCount(); } return i; } public NetworkStatistics.PacketStat func_152484_c() { int i = -1; NetworkStatistics.PacketStatData packetstatdata = new NetworkStatistics.PacketStatData(-1L, -1, 0.0D, null); for (int j = 0; j < 100; ++j) { NetworkStatistics.PacketStatData packetstatdata1 = (NetworkStatistics.PacketStatData)this.field_152490_a[j].get(); if (packetstatdata1.totalBytes > packetstatdata.totalBytes) { i = j; packetstatdata = packetstatdata1; } } return new NetworkStatistics.PacketStat(i, packetstatdata); } public NetworkStatistics.PacketStat func_152486_d() { int i = -1; NetworkStatistics.PacketStatData packetstatdata = new NetworkStatistics.PacketStatData(-1L, -1, 0.0D, null); for (int j = 0; j < 100; ++j) { NetworkStatistics.PacketStatData packetstatdata1 = (NetworkStatistics.PacketStatData)this.field_152490_a[j].get(); if (packetstatdata1.count > packetstatdata.count) { i = j; packetstatdata = packetstatdata1; } } return new NetworkStatistics.PacketStat(i, packetstatdata); } public NetworkStatistics.PacketStat func_152487_a(int p_152487_1_) { return p_152487_1_ >= 0 && p_152487_1_ < 100 ? new NetworkStatistics.PacketStat(p_152487_1_, (NetworkStatistics.PacketStatData)this.field_152490_a[p_152487_1_].get()) : null; } } }