1 /* 2 * Created on 16-Apr-2004 3 */ 4 package ca.uhn.hl7v2.protocol; 5 6 import java.io.InputStream; 7 import java.io.OutputStream; 8 9 /** 10 * A source of input and output streams for use with stream-based 11 * <code>TransportLayer</code>s. Implementations should contain the 12 * necessary information for reconnecting streams as necessary. For 13 * example a ServerSocket-based implementation should be able to listen 14 * for fresh connections and get new streams from them (this must be 15 * done when refresh() is called). 16 * 17 * @author <a href="mailto:bryan.tripp@uhn.on.ca">Bryan Tripp</a> 18 * @version $Revision: 1.1 $ updated on $Date: 2007-02-19 02:24:38 $ by $Author: jamesagnew $ 19 */ 20 public interface StreamSource { 21 22 /** 23 * Gets new streams. This should be called only if one of the streams 24 * is dead. 25 * @throws TransportException 26 */ 27 void connect() throws TransportException; 28 29 /** 30 * Closes streams and underlying connections. 31 * @throws TransportException 32 */ 33 void disconnect() throws TransportException; 34 35 /** 36 * @return the stream to which we write outbound messages. 37 * @throws TransportException 38 */ 39 OutputStream getOutboundStream() throws TransportException; 40 41 /** 42 * @return the stream to which we expect the remote server to send messages. 43 * @throws TransportException 44 */ 45 InputStream getInboundStream() throws TransportException; 46 47 }