87 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.util.profiling.jfr.event;
 | |
| 
 | |
| import java.util.concurrent.atomic.AtomicInteger;
 | |
| import java.util.concurrent.atomic.AtomicLong;
 | |
| import jdk.jfr.Category;
 | |
| import jdk.jfr.DataAmount;
 | |
| import jdk.jfr.Event;
 | |
| import jdk.jfr.EventType;
 | |
| import jdk.jfr.Label;
 | |
| import jdk.jfr.Name;
 | |
| import jdk.jfr.Period;
 | |
| import jdk.jfr.StackTrace;
 | |
| import net.minecraft.obfuscate.DontObfuscate;
 | |
| 
 | |
| @Name("minecraft.NetworkSummary")
 | |
| @Label("Network Summary")
 | |
| @Category({"Minecraft", "Network"})
 | |
| @StackTrace(false)
 | |
| @Period("10 s")
 | |
| @DontObfuscate
 | |
| public class NetworkSummaryEvent extends Event {
 | |
| 	public static final String EVENT_NAME = "minecraft.NetworkSummary";
 | |
| 	public static final EventType TYPE = EventType.getEventType(NetworkSummaryEvent.class);
 | |
| 	@Name("remoteAddress")
 | |
| 	@Label("Remote Address")
 | |
| 	public final String remoteAddress;
 | |
| 	@Name("sentBytes")
 | |
| 	@Label("Sent Bytes")
 | |
| 	@DataAmount
 | |
| 	public long sentBytes;
 | |
| 	@Name("sentPackets")
 | |
| 	@Label("Sent Packets")
 | |
| 	public int sentPackets;
 | |
| 	@Name("receivedBytes")
 | |
| 	@Label("Received Bytes")
 | |
| 	@DataAmount
 | |
| 	public long receivedBytes;
 | |
| 	@Name("receivedPackets")
 | |
| 	@Label("Received Packets")
 | |
| 	public int receivedPackets;
 | |
| 
 | |
| 	public NetworkSummaryEvent(String string) {
 | |
| 		this.remoteAddress = string;
 | |
| 	}
 | |
| 
 | |
| 	public static final class Fields {
 | |
| 		public static final String REMOTE_ADDRESS = "remoteAddress";
 | |
| 		public static final String SENT_BYTES = "sentBytes";
 | |
| 		private static final String SENT_PACKETS = "sentPackets";
 | |
| 		public static final String RECEIVED_BYTES = "receivedBytes";
 | |
| 		private static final String RECEIVED_PACKETS = "receivedPackets";
 | |
| 
 | |
| 		private Fields() {
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public static final class SumAggregation {
 | |
| 		private final AtomicLong sentBytes = new AtomicLong();
 | |
| 		private final AtomicInteger sentPackets = new AtomicInteger();
 | |
| 		private final AtomicLong receivedBytes = new AtomicLong();
 | |
| 		private final AtomicInteger receivedPackets = new AtomicInteger();
 | |
| 		private final NetworkSummaryEvent event;
 | |
| 
 | |
| 		public SumAggregation(String remoteAddress) {
 | |
| 			this.event = new NetworkSummaryEvent(remoteAddress);
 | |
| 			this.event.begin();
 | |
| 		}
 | |
| 
 | |
| 		public void trackSentPacket(int delta) {
 | |
| 			this.sentPackets.incrementAndGet();
 | |
| 			this.sentBytes.addAndGet(delta);
 | |
| 		}
 | |
| 
 | |
| 		public void trackReceivedPacket(int delta) {
 | |
| 			this.receivedPackets.incrementAndGet();
 | |
| 			this.receivedBytes.addAndGet(delta);
 | |
| 		}
 | |
| 
 | |
| 		public void commitEvent() {
 | |
| 			this.event.sentBytes = this.sentBytes.get();
 | |
| 			this.event.sentPackets = this.sentPackets.get();
 | |
| 			this.event.receivedBytes = this.receivedBytes.get();
 | |
| 			this.event.receivedPackets = this.receivedPackets.get();
 | |
| 			this.event.commit();
 | |
| 		}
 | |
| 	}
 | |
| }
 |