summaryrefslogtreecommitdiff
path: root/py/demo/Ice/converter/Client.py
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2008-04-22 13:40:39 -0400
committerBernard Normier <bernard@zeroc.com>2008-04-22 13:40:39 -0400
commite9ff5f662db93aa2d7a53dd470318e087bae1cf2 (patch)
tree228c6af2fb81c0ef59bcd0a56ddade1d7fdd3128 /py/demo/Ice/converter/Client.py
parentAdded comments to Java & C# timer class (diff)
downloadice-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-xpy/demo/Ice/converter/Client.py123
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)