diff options
Diffstat (limited to 'py/demo/Ice/callback/Server.py')
-rwxr-xr-x | py/demo/Ice/callback/Server.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/py/demo/Ice/callback/Server.py b/py/demo/Ice/callback/Server.py new file mode 100755 index 00000000000..f6e1cdac6aa --- /dev/null +++ b/py/demo/Ice/callback/Server.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2011 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('Callback.ice') +import Demo + +class CallbackSenderI(Demo.CallbackSender): + def initiateCallback(self, proxy, current=None): + print "initiating callback" + try: + proxy.callback() + except: + traceback.print_exc() + + def shutdown(self, current=None): + print "Shutting down..." + try: + current.adapter.getCommunicator().shutdown() + except: + traceback.print_exc() + +class Server(Ice.Application): + def run(self, args): + if len(args) > 1: + print self.appName() + ": too many arguments" + return 1 + + adapter = self.communicator().createObjectAdapter("Callback.Server") + adapter.add(CallbackSenderI(), self.communicator().stringToIdentity("callbackSender")) + adapter.activate() + self.communicator().waitForShutdown() + return 0 + +app = Server() +sys.exit(app.main(sys.argv, "config.server")) |