1 package ca.uhn.hl7v2.hoh.api; 2 3 import java.net.Socket; 4 import java.net.URL; 5 import java.nio.charset.Charset; 6 7 import ca.uhn.hl7v2.hoh.sign.ISigner; 8 import ca.uhn.hl7v2.hoh.sockets.ISocketFactory; 9 import ca.uhn.hl7v2.hoh.sockets.StandardSocketFactory; 10 11 public interface IClient { 12 13 /** 14 * Getter for the host (e.g. "10.0.0.111" or "localhost") 15 */ 16 String getHost(); 17 18 /** 19 * Getter for the port (e.g. 80 for standard HTTP) 20 */ 21 int getPort(); 22 23 /** 24 * Returns the socket factory used by this client 25 */ 26 ISocketFactory getSocketFactory(); 27 28 /** 29 * Getter for the "Path" portion of the URL. This is the path portion which 30 * comes after the host and port, so for example if this client is being 31 * used to send messages to 32 * <code>http://somehost.com:8888/messaging/receiver.jsp</code>, the URI 33 * path portion would be <code>/messaging/receiver.jsp</code> 34 */ 35 String getUriPath(); 36 37 /** 38 * Getter for the URL to send messages to. 39 */ 40 URL getUrl(); 41 42 /** 43 * If set, provides a callback which will be used to se the username and 44 * password associated with the request 45 */ 46 void setAuthorizationCallback(IAuthorizationClientCallback theAuthorizationCallback); 47 48 /** 49 * <p> 50 * Sets the charset to use for requests from this client. May be changed at 51 * any time. 52 * </p> 53 * <p> 54 * Default is UTF-8 55 * </p> 56 */ 57 void setCharset(Charset theCharset); 58 59 /** 60 * Setter for the host (e.g. "10.0.0.111" or "localhost") 61 */ 62 void setHost(String theHost); 63 64 /** 65 * Configures the TCP KeepAlive flag for new connections 66 * 67 * @see Socket#getKeepAlive() 68 */ 69 void setKeepAlive(boolean theKeepAlive); 70 71 /** 72 * Returns the TCP KeepAlive flag for new connections 73 * 74 * @see Socket#getKeepAlive() 75 */ 76 boolean isKeepAlive(); 77 78 /** 79 * Sets the TCP SO Timeout setting for new connections 80 * 81 * @see Socket#getSoTimeout() 82 */ 83 void setSoTimeout(int theSoTimeout); 84 85 /** 86 * Returns the TCP SO Timeout setting for new connections 87 * 88 * @see Socket#getSoTimeout() 89 */ 90 int getSoTimeout(); 91 92 /** 93 * Setter for the "Path" portion of the URL. This is the path portion which 94 * comes after the host and port, so for example if this client is being 95 * used to send messages to 96 * <code>http://somehost.com:8888/messaging/receiver.jsp</code>, the URI 97 * path portion would be <code>/messaging/receiver.jsp</code> 98 */ 99 void setUriPath(String thePath); 100 101 /** 102 * Getter for the port (e.g. 80 for standard HTTP) 103 */ 104 void setPort(int thePort); 105 106 /** 107 * Sets the number of milliseconds before timing out. Default is 108 * {@link #DEFAULT_RESPONSE_TIMEOUT} 109 * 110 * @param theResponseTimeout 111 * The millis to wait before timeout. 112 * @see #DEFAULT_RESPONSE_TIMEOUT 113 */ 114 void setResponseTimeout(long theResponseTimeout); 115 116 /** 117 * @param theSigner 118 * If provided, sets the Signature Profile signer implementation 119 * to use. See <a href= 120 * "http://hl7api.sourceforge.net/hapi-hl7overhttp/specification.html#SIGNATURE_PROFILE" 121 * >http://hl7api.sourceforge.net/hapi-hl7overhttp/specification. 122 * html#SIGNATURE_PROFILE</a> 123 */ 124 void setSigner(ISigner theSigner); 125 126 /** 127 * Sets the socket factory used by this client. Default is 128 * {@link StandardSocketFactory}. 129 * 130 * @see ISocketFactory 131 */ 132 void setSocketFactory(ISocketFactory theSocketFactory); 133 134 /** 135 * Setter for the URL to send messages to. 136 * Note that invoking this method replaces any values that have been 137 * provided to {@link #setHost(String)}, {@link #setPort(int)}, or {@link #setUriPath(String)} 138 */ 139 void setUrl(URL theUrl); 140 141 /** 142 * Setter for the URL to send messages to. 143 * Note that invoking this method replaces any values that have been 144 * provided to {@link #setHost(String)}, {@link #setPort(int)}, or {@link #setUriPath(String)} 145 */ 146 void setUrlString(String theString); 147 148 /** 149 * Getter for the URL to send messages to. 150 */ 151 String getUrlString(); 152 153 }