1 /* 2 * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package jdk.jfr.events; 27 28 import jdk.jfr.Category; 29 import jdk.jfr.Description; 30 import jdk.jfr.Label; 31 import jdk.jfr.DataAmount; 32 import jdk.jfr.Name; 33 import jdk.jfr.Timespan; 34 import jdk.jfr.internal.Type; 35 36 @Name(Type.EVENT_NAME_PREFIX + "SocketRead") 37 @Label("Socket Read") 38 @Category("Java Application") 39 @Description("Reading data from a socket") 40 public final class SocketReadEvent extends AbstractJDKEvent { 41 42 public static final ThreadLocal<SocketReadEvent> EVENT = 43 new ThreadLocal<SocketReadEvent>() { 44 @Override protected SocketReadEvent initialValue() { 45 return new SocketReadEvent(); 46 } 47 }; 48 49 @Label("Remote Host") 50 public String host; 51 52 @Label("Remote Address") 53 public String address; 54 55 @Label("Remote Port") 56 public int port; 57 58 @Label("Timeout Value") 59 @Timespan(Timespan.MILLISECONDS) 60 public long timeout; 61 62 @Label("Bytes Read") 63 @Description("Number of bytes read from the socket") 64 @DataAmount 65 public long bytesRead; 66 67 @Label("End of Stream") 68 @Description("If end of stream was reached") 69 public boolean endOfStream; 70 71 public void reset() { 72 host = null; 73 address = null; 74 port = 0; 75 timeout = 0; 76 bytesRead = 0L; 77 endOfStream = false; 78 } 79 }