diff options
Diffstat (limited to 'py/demo/Ice/bidir/Client.py')
-rw-r--r-- | py/demo/Ice/bidir/Client.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/py/demo/Ice/bidir/Client.py b/py/demo/Ice/bidir/Client.py new file mode 100644 index 00000000000..59eea5b35c9 --- /dev/null +++ b/py/demo/Ice/bidir/Client.py @@ -0,0 +1,53 @@ +# ********************************************************************** +# +# 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 os, sys, Ice + +slice_dir = os.getenv('ICEPY_HOME', '') +if len(slice_dir) == 0 or not os.path.exists(os.path.join(slice_dir, "slice")): + slice_dir = os.getenv('ICE_HOME', '') +if len(slice_dir) == 0 or not os.path.exists(os.path.join(slice_dir, "slice")): + print sys.argv[0] + ': Slice directory not found. Define ICEPY_HOME or ICE_HOME.' + sys.exit(1) + +Ice.loadSlice('-I' + slice_dir + '/slice Callback.ice') +import Demo + +class CallbackReceiverI(Demo.CallbackReceiver): + def callback(self, num, current=None): + print "received callback #" + str(num) + +class CallbackClient(Ice.Application): + def run(self, args): + properties = self.communicator().getProperties() + proxyProperty = 'Callback.Client.CallbackServer' + proxy = properties.getProperty(proxyProperty) + if len(proxy) == 0: + print self.appName() + ": property `" + proxyProperty + "' not set" + return 1 + + server = Demo.CallbackSenderPrx.checkedCast(self.communicator().stringToProxy(proxy)) + if not server: + print self.appName() + ": invalid proxy" + return 1 + + adapter = self.communicator().createObjectAdapter("Callback.Client") + ident = Ice.Identity() + ident.name = Ice.generateUUID() + ident.category = "" + adapter.add(CallbackReceiverI(), ident) + adapter.activate() + server.ice_connection().setAdapter(adapter) + server.addClient(ident) + self.communicator().waitForShutdown() + + return 0 + +app = CallbackClient() +sys.exit(app.main(sys.argv, "config")) |