diff options
author | Bernard Normier <bernard@zeroc.com> | 2008-04-22 13:40:39 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2008-04-22 13:40:39 -0400 |
commit | e9ff5f662db93aa2d7a53dd470318e087bae1cf2 (patch) | |
tree | 228c6af2fb81c0ef59bcd0a56ddade1d7fdd3128 /py/demo/Ice/converter/Client.py | |
parent | Added comments to Java & C# timer class (diff) | |
download | ice-e9ff5f662db93aa2d7a53dd470318e087bae1cf2.tar.bz2 ice-e9ff5f662db93aa2d7a53dd470318e087bae1cf2.tar.xz ice-e9ff5f662db93aa2d7a53dd470318e087bae1cf2.zip |
Linux/Unix-side of string-converter plugin
Diffstat (limited to 'py/demo/Ice/converter/Client.py')
-rwxr-xr-x | py/demo/Ice/converter/Client.py | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/py/demo/Ice/converter/Client.py b/py/demo/Ice/converter/Client.py new file mode 100755 index 00000000000..0cfa49cb3db --- /dev/null +++ b/py/demo/Ice/converter/Client.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2008 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 sys, traceback, Ice + +Ice.loadSlice('Greet.ice') +import Demo + +def menu(): + print """ +usage: +t: send greeting with conversion +u: send greeting without conversion +s: shutdown server +x: exit +?: help +""" + +def decodeString(str): + # TODO: implement properly! + return str + +communicator1 = None +communicator2 = None + +class Client: + def run(self, args): + if len(args) > 1: + print self.appName() + ": too many arguments" + return 1 + + greet1 = Demo.GreetPrx.checkedCast(communicator1.propertyToProxy('Greet.Proxy')) + if not greet1: + print args[0] + ": invalid proxy" + return 1 + + greet2 = Demo.GreetPrx.checkedCast(communicator2.propertyToProxy('Greet.Proxy')) + if not greet2: + print args[0] + ": invalid proxy" + return 1 + + menu() + + greeting = "Bonne journ\351e"; + + c = None + while c != 'x': + try: + c = raw_input("==> ") + if c == 't': + ret = greet1.exchangeGreeting(greeting) + print "Received: \"" + decodeString(ret) + "\"" + elif c == 'u': + ret = greet2.exchangeGreeting(greeting) + print "Received: \"" + decodeString(ret) + "\"" + elif c == 's': + greet1.shutdown() + elif c == 'x': + pass # Nothing to do + elif c == '?': + menu() + else: + print "unknown command `" + c + "'" + menu() + except KeyboardInterrupt: + break + except EOFError: + break + except Ice.Exception, ex: + print ex + + return 0 + + + +status = 0 + +try: + + initData = Ice.InitializationData() + initData.properties = Ice.createProperties(None, initData.properties) + initData.properties.load("config.client") + # + # With converter + # + communicator1 = Ice.initialize(sys.argv, initData) + + # + # Clear plugin, so no converter + # + initData.properties.setProperty("Ice.Plugin.StringConverter", "") + communicator2 = Ice.initialize(sys.argv, initData) + + app = Client() + status = app.run(sys.argv) + +except: + traceback.print_exc() + status = 1 + + +if communicator1: + try: + communicator1.destroy() + except: + traceback.print_exc() + status = 1 + +if communicator2: + try: + communicator2.destroy() + except: + traceback.print_exc() + status = 1 + +sys.exit(status) |