diff options
author | Mark Spruiell <mes@zeroc.com> | 2004-10-20 00:04:40 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2004-10-20 00:04:40 +0000 |
commit | 486c95495b7457fa035001ba026b1b9b848b794b (patch) | |
tree | 3bf070fb9ec87b39ab3423823fdad0efb94c7013 /java/demo/Ice/invoke/Client.java | |
parent | Win32 fixes (diff) | |
download | ice-486c95495b7457fa035001ba026b1b9b848b794b.tar.bz2 ice-486c95495b7457fa035001ba026b1b9b848b794b.tar.xz ice-486c95495b7457fa035001ba026b1b9b848b794b.zip |
adding streaming interface
Diffstat (limited to 'java/demo/Ice/invoke/Client.java')
-rw-r--r-- | java/demo/Ice/invoke/Client.java | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/java/demo/Ice/invoke/Client.java b/java/demo/Ice/invoke/Client.java new file mode 100644 index 00000000000..b855f65f0c7 --- /dev/null +++ b/java/demo/Ice/invoke/Client.java @@ -0,0 +1,311 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2004 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 +{ + private static void + menu() + { + System.out.println( + "usage:\n" + + "1: print string\n" + + "2: print string sequence\n" + + "3: print dictionary\n" + + "4: print enum\n" + + "5: print struct\n" + + "6: print struct sequence\n" + + "7: print class\n" + + "8: get values\n" + + "9: throw exception\n" + + "s: shutdown server\n" + + "x: exit\n" + + "?: help\n"); + } + + private static int + run(String[] args, Ice.Communicator communicator) + { + Ice.Properties properties = communicator.getProperties(); + final String proxyProperty = "Printer.Proxy"; + String proxy = properties.getProperty(proxyProperty); + if(proxy.length() == 0) + { + System.err.println("property `" + proxyProperty + "' not set"); + return 1; + } + + Ice.ObjectPrx obj = communicator.stringToProxy(proxy); + + menu(); + + java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(System.in)); + + String line = null; + do + { + try + { + System.out.print("==> "); + System.out.flush(); + line = reader.readLine(); + if(line == null) + { + break; + } + if(line.equals("1")) + { + // + // Marshal the in parameter. + // + Ice.OutputStream out = Ice.Util.createOutputStream(communicator); + out.writeString("The streaming API works!"); + + // + // Invoke operation. + // + if(!obj.ice_invoke("printString", Ice.OperationMode.Normal, out.finished(), null)) + { + System.out.println("Unknown user exception"); + } + } + else if(line.equals("2")) + { + // + // Marshal the in parameter. + // + Ice.OutputStream out = Ice.Util.createOutputStream(communicator); + final String[] arr = { "The", "streaming", "API", "works!" }; + Demo.StringSeqHelper.write(out, arr); + + // + // Invoke operation. + // + if(!obj.ice_invoke("printStringSequence", Ice.OperationMode.Normal, out.finished(), null)) + { + System.out.println("Unknown user exception"); + } + } + else if(line.equals("3")) + { + // + // Marshal the in parameter. + // + Ice.OutputStream out = Ice.Util.createOutputStream(communicator); + java.util.Map dict = new java.util.HashMap(); + dict.put("The", "streaming"); + dict.put("API", "works!"); + Demo.StringDictHelper.write(out, dict); + + // + // Invoke operation. + // + if(!obj.ice_invoke("printDictionary", Ice.OperationMode.Normal, out.finished(), null)) + { + System.out.println("Unknown user exception"); + } + } + else if(line.equals("4")) + { + // + // Marshal the in parameter. + // + Ice.OutputStream out = Ice.Util.createOutputStream(communicator); + Demo.Color.green.__write(out); + + // + // Invoke operation. + // + if(!obj.ice_invoke("printEnum", Ice.OperationMode.Normal, out.finished(), null)) + { + System.out.println("Unknown user exception"); + } + } + else if(line.equals("5")) + { + // + // Marshal the in parameter. + // + Ice.OutputStream out = Ice.Util.createOutputStream(communicator); + Demo.Structure s = new Demo.Structure(); + s.name = "red"; + s.value = Demo.Color.red; + s.__write(out); + + // + // Invoke operation. + // + if(!obj.ice_invoke("printStruct", Ice.OperationMode.Normal, out.finished(), null)) + { + System.out.println("Unknown user exception"); + } + } + else if(line.equals("6")) + { + // + // Marshal the in parameter. + // + Ice.OutputStream out = Ice.Util.createOutputStream(communicator); + Demo.Structure[] arr = new Demo.Structure[3]; + arr[0] = new Demo.Structure(); + arr[0].name = "red"; + arr[0].value = Demo.Color.red; + arr[1] = new Demo.Structure(); + arr[1].name = "green"; + arr[1].value = Demo.Color.green; + arr[2] = new Demo.Structure(); + arr[2].name = "blue"; + arr[2].value = Demo.Color.blue; + Demo.StructureSeqHelper.write(out, arr); + + // + // Invoke operation. + // + if(!obj.ice_invoke("printStructSequence", Ice.OperationMode.Normal, out.finished(), null)) + { + System.out.println("Unknown user exception"); + } + } + else if(line.equals("7")) + { + // + // Marshal the in parameter. + // + Ice.OutputStream out = Ice.Util.createOutputStream(communicator); + Demo.C c = new Demo.C(); + c.s = new Demo.Structure(); + c.s.name = "blue"; + c.s.value = Demo.Color.blue; + Demo.CHelper.write(out, c); + + // + // Invoke operation. + // + if(!obj.ice_invoke("printClass", Ice.OperationMode.Normal, out.finished(), null)) + { + System.out.println("Unknown user exception"); + } + } + else if(line.equals("8")) + { + // + // Invoke operation. + // + Ice.ByteSeqHolder outParams = new Ice.ByteSeqHolder(); + if(!obj.ice_invoke("getValues", Ice.OperationMode.Normal, null, outParams)) + { + System.out.println("Unknown user exception"); + continue; + } + + // + // Unmarshal the results. + // + Ice.InputStream in = Ice.Util.createInputStream(communicator, outParams.value); + Demo.CHolder c = new Demo.CHolder(); + Demo.CHelper.read(in, c); + String str = in.readString(); + in.finished(); + System.out.println("Got string `" + str + "' and class: s.name=" + c.value.s.name + + ", s.value=" + c.value.s.value); + } + else if(line.equals("9")) + { + // + // Invoke operation. + // + Ice.ByteSeqHolder outParams = new Ice.ByteSeqHolder(); + if(obj.ice_invoke("throwPrintFailure", Ice.OperationMode.Normal, null, outParams)) + { + System.out.println("Expected exception"); + continue; + } + + Ice.InputStream in = Ice.Util.createInputStream(communicator, outParams.value); + try + { + in.throwException(); + } + catch(Demo.PrintFailure ex) + { + // Expected. + } + catch(Ice.UserException ex) + { + System.out.println("Unknown user exception"); + } + } + else if(line.equals("s")) + { + obj.ice_invoke("shutdown", Ice.OperationMode.Normal, null, null); + } + 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) + { + int status = 0; + Ice.Communicator communicator = null; + + try + { + Ice.Properties properties = Ice.Util.createProperties(); + properties.load("config"); + communicator = Ice.Util.initializeWithProperties(args, properties); + status = run(args, communicator); + } + catch(Ice.LocalException ex) + { + ex.printStackTrace(); + status = 1; + } + + if(communicator != null) + { + try + { + communicator.destroy(); + } + catch(Ice.LocalException ex) + { + ex.printStackTrace(); + status = 1; + } + } + + System.exit(status); + } +} |