From 6c2a7ea80b9cabbd9c9051e2d5c9f4274451ed7f Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Wed, 17 Feb 2010 16:13:12 +0000 Subject: added reservations to examples git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@911048 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/python/examples/reservations/common.py | 86 +++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 qpid/python/examples/reservations/common.py (limited to 'qpid/python/examples/reservations/common.py') diff --git a/qpid/python/examples/reservations/common.py b/qpid/python/examples/reservations/common.py new file mode 100644 index 0000000000..4f9efd0227 --- /dev/null +++ b/qpid/python/examples/reservations/common.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +import traceback +from fnmatch import fnmatch +from qpid.messaging import * + +class Dispatcher: + + def unhandled(self, msg): + print "UNHANDLED MESSAGE: %s" % msg + + def ignored(self, msg): + return False + + def dispatch(self, msg): + try: + if self.ignored(msg): + return () + else: + type = msg.properties.get("type") + replies = getattr(self, "do_%s" % type, self.unhandled)(msg) + if replies is None: + return () + else: + return replies + except: + traceback.print_exc() + return () + + def run(self, session): + senders = {} + while self.running(): + msg = session.next_receiver().fetch() + replies = self.dispatch(msg) + + count = len(replies) + sequence = 1 + for r in replies: + if senders.has_key(r.to): + rsnd = senders[r.to] + else: + rsnd = session.sender(r.to) + senders[r.to] = rsnd + + r.correlation_id = msg.correlation_id + r.properties["count"] = count + r.properties["sequence"] = sequence + sequence += 1 + try: + rsnd.send(r) + except SendError, e: + print e + del senders[r.to] + rsnd.close() + + session.acknowledge(msg) + +def get_status(msg): + return msg.content["identity"], msg.content["status"], msg.content["owner"] + +FREE = "free" +BUSY = "busy" + +def match(value, patterns): + for p in patterns: + if fnmatch(value, p): + return True + return False -- cgit v1.2.1 From ad2598d3f13f64d1ab9dc9dfc1eb17394a625d15 Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Wed, 17 Feb 2010 17:58:23 +0000 Subject: removed sender caching as this should now be unnecessary git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@911121 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/python/examples/reservations/common.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'qpid/python/examples/reservations/common.py') diff --git a/qpid/python/examples/reservations/common.py b/qpid/python/examples/reservations/common.py index 4f9efd0227..24e64beda4 100644 --- a/qpid/python/examples/reservations/common.py +++ b/qpid/python/examples/reservations/common.py @@ -46,7 +46,6 @@ class Dispatcher: return () def run(self, session): - senders = {} while self.running(): msg = session.next_receiver().fetch() replies = self.dispatch(msg) @@ -54,22 +53,17 @@ class Dispatcher: count = len(replies) sequence = 1 for r in replies: - if senders.has_key(r.to): - rsnd = senders[r.to] - else: - rsnd = session.sender(r.to) - senders[r.to] = rsnd - r.correlation_id = msg.correlation_id r.properties["count"] = count r.properties["sequence"] = sequence sequence += 1 try: - rsnd.send(r) + snd = session.sender(r.to) + snd.send(r) except SendError, e: print e - del senders[r.to] - rsnd.close() + finally: + snd.close() session.acknowledge(msg) -- cgit v1.2.1 From f328f8dfb20911b952f0c5551cc37c0b8d42576d Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Fri, 9 Apr 2010 15:14:27 +0000 Subject: updated reservations example to match latest changes git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@932454 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/python/examples/reservations/common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'qpid/python/examples/reservations/common.py') diff --git a/qpid/python/examples/reservations/common.py b/qpid/python/examples/reservations/common.py index 24e64beda4..12f07e1c92 100644 --- a/qpid/python/examples/reservations/common.py +++ b/qpid/python/examples/reservations/common.py @@ -52,13 +52,13 @@ class Dispatcher: count = len(replies) sequence = 1 - for r in replies: + for to, r in replies: r.correlation_id = msg.correlation_id r.properties["count"] = count r.properties["sequence"] = sequence sequence += 1 try: - snd = session.sender(r.to) + snd = session.sender(to) snd.send(r) except SendError, e: print e -- cgit v1.2.1