diff options
author | Matthew Newhook <matthew@zeroc.com> | 2015-03-18 12:58:16 -0230 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2015-03-18 12:58:16 -0230 |
commit | 9b7668c7c92cf9cb311fe444cdddb489cd2a219d (patch) | |
tree | 5016567c58c81f5654e9d01935e199c6bf4761d2 /py/demo/IceStorm/clock/Subscriber.py | |
parent | VS add-in & build updates: (diff) | |
download | ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.bz2 ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.xz ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.zip |
Removed demos.
Moved demoscript to distribution.
Diffstat (limited to 'py/demo/IceStorm/clock/Subscriber.py')
-rwxr-xr-x | py/demo/IceStorm/clock/Subscriber.py | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/py/demo/IceStorm/clock/Subscriber.py b/py/demo/IceStorm/clock/Subscriber.py deleted file mode 100755 index 5152832b0b7..00000000000 --- a/py/demo/IceStorm/clock/Subscriber.py +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2015 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, IceStorm, getopt - -Ice.loadSlice('Clock.ice') -import Demo - -class ClockI(Demo.Clock): - def tick(self, date, current=None): - print(date) - -class Subscriber(Ice.Application): - def usage(self): - print("Usage: " + self.appName() + \ - " [--batch] [--datagram|--twoway|--ordered|--oneway] [--retryCount count] [--id id] [topic]") - - def run(self, args): - try: - opts, args = getopt.getopt(args[1:], '', ['datagram', 'twoway', 'oneway', 'ordered', 'batch', - 'retryCount=', 'id=']) - except getopt.GetoptError: - self.usage() - return 1 - - batch = False - option = "None" - topicName = "time" - id = "" - retryCount = "" - - for o, a in opts: - oldoption = option - if o == "--datagram": - option = "Datagram" - elif o =="--twoway": - option = "Twoway" - elif o =="--ordered": - option = "Ordered" - elif o =="--oneway": - option = "Oneway" - elif o =="--batch": - batch = True - elif o == "--id": - id = a - elif o == "--retryCount": - retryCount = a - if oldoption != option and oldoption != "None": - self.usage() - return 1 - - if len(args) > 1: - self.usage() - return 1 - - if len(args) > 0: - topicName = args[0] - - if len(retryCount) > 0: - if option == "None": - option = "Twoway" - elif option != "Twoway" and option != "Ordered": - print(self.appName() + ": retryCount requires a twoway proxy") - return 1 - - if batch and (option in ("Twoway", "Ordered")): - print(self.appName() + ": batch can only be set with oneway or datagram") - return 1 - - manager = IceStorm.TopicManagerPrx.checkedCast(self.communicator().propertyToProxy('TopicManager.Proxy')) - if not manager: - print(args[0] + ": invalid proxy") - return 1 - - # - # Retrieve the topic. - # - try: - topic = manager.retrieve(topicName) - except IceStorm.NoSuchTopic as e: - try: - topic = manager.create(topicName) - except IceStorm.TopicExists as ex: - print(self.appName() + ": temporary error. try again") - return 1 - - adapter = self.communicator().createObjectAdapter("Clock.Subscriber") - - # - # Add a servant for the Ice object. If --id is used the identity - # comes from the command line, otherwise a UUID is used. - # - # id is not directly altered since it is used below to detect - # whether subscribeAndGetPublisher can raise AlreadySubscribed. - # - - subId = Ice.Identity() - subId.name = id - if len(subId.name) == 0: - subId.name = Ice.generateUUID() - subscriber = adapter.add(ClockI(), subId) - - # - # Activate the object adapter before subscribing. - # - adapter.activate() - - qos = {} - if len(retryCount) > 0: - qos["retryCount"] = retryCount - - # - # Set up the proxy. - # - if option == "Datagram": - if batch: - subscriber = subscriber.ice_batchDatagram() - else: - subscriber = subscriber.ice_datagram() - elif option == "Twoway": - # Do nothing to the subscriber proxy. Its already twoway. - pass - elif option == "Ordered": - # Do nothing to the subscriber proxy. Its already twoway. - qos["reliability"] = "ordered" - elif option == "Oneway" or option == "None": - if batch: - subscriber = subscriber.ice_batchOneway() - else: - subscriber = subscriber.ice_oneway() - - try: - topic.subscribeAndGetPublisher(qos, subscriber) - except IceStorm.AlreadySubscribed as ex: - # If we're manually setting the subscriber id ignore. - if len(id) == 0: - raise - print("reactivating persistent subscriber") - - self.shutdownOnInterrupt() - self.communicator().waitForShutdown() - - # - # Unsubscribe all subscribed objects. - # - topic.unsubscribe(subscriber) - - return 0 - -app = Subscriber() -sys.exit(app.main(sys.argv, "config.sub")) |