summaryrefslogtreecommitdiff
path: root/py/demo/Ice/bidir/Client.py
diff options
context:
space:
mode:
Diffstat (limited to 'py/demo/Ice/bidir/Client.py')
-rw-r--r--py/demo/Ice/bidir/Client.py53
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"))