1 /* 2 * Copyright (c) 2012, 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 sun.misc; 27 28 import java.net.InetAddress; 29 30 public interface IoTraceListener { 31 32 // Notes: 33 // 34 // The *Begin() methods return a "handle". This can be any Object. 35 // This handle will be passed to the *End() method. 36 // 37 // It is possible for a *End() method to be called with a null 38 // handle. This happens if tracing was started between the call to 39 // *Begin() and *End(), in which case *Begin() would not have been 40 // called. 41 // 42 // Implementations of these methods should not throw Exceptions 43 // since this will cause disruptions to the I/O operations. 44 45 // Socket read 46 public Object socketReadBegin(InetAddress address, int port, int timeout); 47 public void socketReadEnd(Object handle, long bytesRead); 48 49 // Socket Write 50 public Object socketWriteBegin(InetAddress address, int port); 51 public void socketWriteEnd(Object handle, long bytesRead); 52 53 // File Read 54 public Object fileReadBegin(String path); 55 public void fileReadEnd(Object handle, long bytesRead); 56 57 // File Write 58 public Object fileWriteBegin(String path); 59 public void fileWriteEnd(Object handle, long bytesWritten); 60 }