package code.google.nfs.rpc.grizzly.client; /** * nfs-rpc * Apache License * * http://code.google.com/p/nfs-rpc (c) 2011 */ import org.glassfish.grizzly.CompletionHandler; import org.glassfish.grizzly.Connection; import code.google.nfs.rpc.RequestWrapper; import code.google.nfs.rpc.client.AbstractClient; import code.google.nfs.rpc.client.ClientFactory; /** * Grizzly Client * * @author <a href="mailto:bluedavy@gmail.com">bluedavy</a> */ public class GrizzlyClient extends AbstractClient { private String targetIP; private int targetPort; private int connectTimeout; private Connection<Object> connection; private String clientKey; public GrizzlyClient(String targetIP, int targetPort, int connectTimeout, Connection<Object> connection, String clientKey) { this.targetIP = targetIP; this.targetPort = targetPort; this.connectTimeout = connectTimeout; this.connection = connection; this.clientKey = clientKey; } @SuppressWarnings({"unchecked", "rawtypes"}) public void sendRequest(RequestWrapper wrapper, int timeout) throws Exception { connection.write(wrapper, new CompletionHandler() { public void cancelled() { } public void failed(Throwable throwable) { throwable.printStackTrace(); GrizzlyClientFactory.getInstance().removeClient(clientKey, null); } public void completed(Object result) { } public void updated(Object result) { } }); } public String getServerIP() { return targetIP; } public int getServerPort() { return targetPort; } public int getConnectTimeout() { return connectTimeout; } public long getSendingBytesSize() { return connection.getWriteBufferSize(); } public ClientFactory getClientFactory() { return GrizzlyClientFactory.getInstance(); } }