summaryrefslogtreecommitdiff
path: root/py/demo/IceStorm/clock/Subscriber.py
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
commit9b7668c7c92cf9cb311fe444cdddb489cd2a219d (patch)
tree5016567c58c81f5654e9d01935e199c6bf4761d2 /py/demo/IceStorm/clock/Subscriber.py
parentVS add-in & build updates: (diff)
downloadice-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-xpy/demo/IceStorm/clock/Subscriber.py158
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"))