1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 /** 20 * @author Ivan G. Popov 21 */ 22 23 /** 24 * Created on 05.23.2004 25 */ 26 package org.apache.harmony.jpda.tests.framework.jdwp; 27 28 import java.io.IOException; 29 30 /** 31 * This interface provides wrapper around JDWP transport connection. 32 * Particular implementation can interact directly with raw connection 33 * like SocketTransportWrapper or use JDI service provider interfaces 34 * to support all pluggable JDI transports. 35 * 36 */ 37 public interface TransportWrapper { 38 39 /** 40 * Starts listening for connection on given or default address. 41 * 42 * @param address address to listen or null for default address 43 * @return string representation of listening address 44 */ startListening(String address)45 public String startListening(String address) throws IOException; 46 47 /** 48 * Stops listening for connection on current address. 49 */ stopListening()50 public void stopListening() throws IOException; 51 52 /** 53 * Accepts transport connection for currently listened address and performs handshaking 54 * for specified timeout. 55 * 56 * @param acceptTimeout timeout for accepting in milliseconds 57 * @param handshakeTimeout timeout for handshaking in milliseconds 58 */ accept(long acceptTimeout, long handshakeTimeout)59 public void accept(long acceptTimeout, long handshakeTimeout) throws IOException; 60 61 /** 62 * Attaches transport connection to given address and performs handshaking 63 * for specified timeout. 64 * 65 * @param address address for attaching 66 * @param attachTimeout timeout for attaching in milliseconds 67 * @param handshakeTimeout timeout for handshaking in milliseconds 68 */ attach(String address, long attachTimeout, long handshakeTimeout)69 public void attach(String address, long attachTimeout, long handshakeTimeout) throws IOException; 70 71 /** 72 * Closes transport connection. 73 */ close()74 public void close() throws IOException; 75 76 /** 77 * Checks if transport connection is open. 78 * 79 * @return true if transport connection is open 80 */ isOpen()81 public boolean isOpen(); 82 83 /** 84 * Reads packet from transport connection. 85 * 86 * @return packet as byte array or null or empty packet if connection was closed 87 */ readPacket()88 public byte[] readPacket() throws IOException; 89 90 /** 91 * Writes packet to transport connection. 92 * 93 * @param packet packet as byte array 94 */ writePacket(byte[] packet)95 public void writePacket(byte[] packet) throws IOException; 96 } 97