Former-commit-id:06a8b51d6d
[formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f] Former-commit-id:9f19e3f712
80 lines
2.1 KiB
Python
Executable file
80 lines
2.1 KiB
Python
Executable file
#!/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()
|