diff options
Diffstat (limited to 'RC9/qpid/python/server')
| -rwxr-xr-x | RC9/qpid/python/server | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/RC9/qpid/python/server b/RC9/qpid/python/server new file mode 100755 index 0000000000..56edd38490 --- /dev/null +++ b/RC9/qpid/python/server @@ -0,0 +1,80 @@ +#!/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 qpid +from qpid.connection import Connection, listen +from qpid.delegate import Delegate +from qpid.peer import Peer +from qpid import Struct + +class Server(Delegate): + + def __init__(self): + Delegate.__init__(self) + self.queues = {} + self.bindings = {} + + def connection_open(self, ch, msg): + msg.open_ok() + + def session_open(self, ch, msg): + print "session open on channel %s" % ch.id + msg.attached() + + def execution_flush(self, ch, msg): + pass + + def queue_declare(self, ch, msg): + self.queues[msg.queue] = [] + print "queue declared: %s" % msg.queue + msg.complete() + + def queue_bind(self, ch, msg): + if self.bindings.has_key(msg.exchange): + queues = self.bindings[msg.exchange] + else: + queues = set() + self.bindings[msg.exchange] = queues + queues.add((msg.routing_key, msg.queue)) + msg.complete() + + def queue_query(self, ch, msg): + st = Struct(msg.method.result) + ch.execution_result(msg.command_id, st) + msg.complete() + + def message_subscribe(self, ch, msg): + print msg + msg.complete() + + def message_transfer(self, ch, msg): + print msg.content + msg.complete() + + +spec = qpid.spec.load("../specs/amqp.0-10-preview.xml") + +for io in listen("0.0.0.0", 5672): + c = Connection(io, spec) + p = Peer(c, Server()) + c.tini() + p.start() + ch = p.channel(0) + ch.connection_start() + ch.connection_tune() |
