diff options
Diffstat (limited to 'java/demo/IceDiscovery/hello/Client.java')
-rw-r--r-- | java/demo/IceDiscovery/hello/Client.java | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/java/demo/IceDiscovery/hello/Client.java b/java/demo/IceDiscovery/hello/Client.java new file mode 100644 index 00000000000..31d55f70c8c --- /dev/null +++ b/java/demo/IceDiscovery/hello/Client.java @@ -0,0 +1,237 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2013 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +import Demo.*; + +public class Client extends Ice.Application +{ + class ShutdownHook extends Thread + { + public void + run() + { + try + { + communicator().destroy(); + } + catch(Ice.LocalException ex) + { + ex.printStackTrace(); + } + } + } + + private static void + menu() + { + System.out.println( + "usage:\n" + + "t: send greeting as twoway\n" + + "o: send greeting as oneway\n" + + "O: send greeting as batch oneway\n" + + "d: send greeting as datagram\n" + + "D: send greeting as batch datagram\n" + + "f: flush all batch requests\n" + + "T: set a timeout\n" + + "P: set a server delay\n" + + "S: switch secure mode on/off\n" + + "s: shutdown server\n" + + "x: exit\n" + + "?: help\n"); + } + + public int + run(String[] args) + { + if(args.length > 0) + { + System.err.println(appName() + ": too many arguments"); + return 1; + } + + // + // Since this is an interactive demo we want to clear the + // Application installed interrupt callback and install our + // own shutdown hook. + // + setInterruptHook(new ShutdownHook()); + + HelloPrx twoway = HelloPrxHelper.checkedCast(communicator().stringToProxy("hello").ice_timeout(-1)); + if(twoway == null) + { + System.err.println("invalid proxy"); + return 1; + } + HelloPrx oneway = (HelloPrx)twoway.ice_oneway(); + HelloPrx batchOneway = (HelloPrx)twoway.ice_batchOneway(); + HelloPrx datagram = (HelloPrx)twoway.ice_datagram(); + HelloPrx batchDatagram = (HelloPrx)twoway.ice_batchDatagram(); + + boolean secure = false; + int timeout = -1; + int delay = 0; + + menu(); + + java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(System.in)); + + String line = null; + do + { + try + { + System.out.print("==> "); + System.out.flush(); + line = in.readLine(); + if(line == null) + { + break; + } + if(line.equals("t")) + { + twoway.sayHello(delay); + } + else if(line.equals("o")) + { + oneway.sayHello(delay); + } + else if(line.equals("O")) + { + batchOneway.sayHello(delay); + } + else if(line.equals("d")) + { + if(secure) + { + System.out.println("secure datagrams are not supported"); + } + else + { + datagram.sayHello(delay); + } + } + else if(line.equals("D")) + { + if(secure) + { + System.out.println("secure datagrams are not supported"); + } + else + { + batchDatagram.sayHello(delay); + } + } + else if(line.equals("f")) + { + communicator().flushBatchRequests(); + } + else if(line.equals("T")) + { + if(timeout == -1) + { + timeout = 2000; + } + else + { + timeout = -1; + } + + twoway = (HelloPrx)twoway.ice_timeout(timeout); + oneway = (HelloPrx)oneway.ice_timeout(timeout); + batchOneway = (HelloPrx)batchOneway.ice_timeout(timeout); + + if(timeout == -1) + { + System.out.println("timeout is now switched off"); + } + else + { + System.out.println("timeout is now set to 2000ms"); + } + } + else if(line.equals("P")) + { + if(delay == 0) + { + delay = 2500; + } + else + { + delay = 0; + } + + if(delay == 0) + { + System.out.println("server delay is now deactivated"); + } + else + { + System.out.println("server delay is now set to 2500ms"); + } + } + else if(line.equals("S")) + { + secure = !secure; + + twoway = (HelloPrx)twoway.ice_secure(secure); + oneway = (HelloPrx)oneway.ice_secure(secure); + batchOneway = (HelloPrx)batchOneway.ice_secure(secure); + datagram = (HelloPrx)datagram.ice_secure(secure); + batchDatagram = (HelloPrx)batchDatagram.ice_secure(secure); + + if(secure) + { + System.out.println("secure mode is now on"); + } + else + { + System.out.println("secure mode is now off"); + } + } + else if(line.equals("s")) + { + twoway.shutdown(); + } + else if(line.equals("x")) + { + // Nothing to do + } + else if(line.equals("?")) + { + menu(); + } + else + { + System.out.println("unknown command `" + line + "'"); + menu(); + } + } + catch(java.io.IOException ex) + { + ex.printStackTrace(); + } + catch(Ice.LocalException ex) + { + ex.printStackTrace(); + } + } + while(!line.equals("x")); + + return 0; + } + + public static void + main(String[] args) + { + Client app = new Client(); + int status = app.main("Client", args, "config.client"); + System.exit(status); + } +} + |