diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2007-01-17 18:11:11 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2007-01-17 18:11:11 +0000 |
commit | e124e693704faa56ecf32ce2a243d0c3fa3a5e6e (patch) | |
tree | 071dcaa6edc458f9371289976a4537880e5bb005 /cs/demo/Ice/async/Client.cs | |
parent | Changed async demo (diff) | |
download | ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.tar.bz2 ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.tar.xz ice-e124e693704faa56ecf32ce2a243d0c3fa3a5e6e.zip |
Changed demo
Diffstat (limited to 'cs/demo/Ice/async/Client.cs')
-rw-r--r-- | cs/demo/Ice/async/Client.cs | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/cs/demo/Ice/async/Client.cs b/cs/demo/Ice/async/Client.cs new file mode 100644 index 00000000000..b22b2c98113 --- /dev/null +++ b/cs/demo/Ice/async/Client.cs @@ -0,0 +1,113 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 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. +// +// ********************************************************************** + +using System; +using Demo; + +public class Client : Ice.Application +{ + public class AMI_Hello_sayHelloI : AMI_Hello_sayHello + { + public override void ice_response() + { + } + + public override void ice_exception(Ice.Exception ex) + { + if(ex is RequestCanceledException) + { + Console.Error.WriteLine("Request canceled"); + } + else + { + Console.Error.WriteLine(ex); + } + } + } + + private static void menu() + { + Console.Out.WriteLine( + "usage:\n" + + "i: send immediate greeting\n" + + "d: send delayed greeting\n" + + "s: shutdown server\n" + + "x: exit\n" + + "?: help\n"); + } + + public override int run(string[] args) + { + HelloPrx hello = HelloPrxHelper.checkedCast(communicator().propertyToProxy("Hello.Proxy")); + if(hello == null) + { + Console.Error.WriteLine("invalid proxy"); + return 1; + } + + menu(); + + string line = null; + do + { + try + { + Console.Out.Write("==> "); + Console.Out.Flush(); + line = Console.In.ReadLine(); + if(line == null) + { + break; + } + if(line.Equals("i")) + { + hello.sayHello(0); + } + else if(line.Equals("d")) + { + hello.sayHello_async(new AMI_Hello_sayHelloI(), 5000); + } + else if(line.Equals("s")) + { + hello.shutdown(); + } + else if(line.Equals("x")) + { + // Nothing to do + } + else if(line.Equals("?")) + { + menu(); + } + else + { + Console.Out.WriteLine("unknown command `" + line + "'"); + menu(); + } + } + catch(Ice.Exception ex) + { + Console.Error.WriteLine(ex); + } + } + while(!line.Equals("x")); + + return 0; + } + + public static void Main(string[] args) + { + Client app = new Client(); + int status = app.main(args, "config.client"); + if(status != 0) + { + System.Environment.Exit(status); + } + } +} |