diff options
author | Gordon Sim <gsim@apache.org> | 2007-06-27 12:39:49 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2007-06-27 12:39:49 +0000 |
commit | 5a88e6f19bddc0b9f6da4712b616f5f08b4dec25 (patch) | |
tree | 6d32b3a3ef5416bb40027852b98eda9389cbbb6c /cpp/src/qpid/broker/BrokerQueue.cpp | |
parent | 4add83a2d2482a51f447ca71d2385ae19ea173fa (diff) | |
download | qpid-python-5a88e6f19bddc0b9f6da4712b616f5f08b4dec25.tar.gz |
Added preview of exchange- and binding- query methods that have been approved for 0-10.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@551144 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/BrokerQueue.cpp')
-rw-r--r-- | cpp/src/qpid/broker/BrokerQueue.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/BrokerQueue.cpp b/cpp/src/qpid/broker/BrokerQueue.cpp index 58a8c85fcb..f11766e7ec 100644 --- a/cpp/src/qpid/broker/BrokerQueue.cpp +++ b/cpp/src/qpid/broker/BrokerQueue.cpp @@ -23,6 +23,8 @@ #include "qpid/log/Statement.h" #include "BrokerQueue.h" +#include "BrokerExchange.h" +#include "DeliverableMessage.h" #include "MessageStore.h" #include "qpid/sys/Monitor.h" #include "qpid/sys/Time.h" @@ -233,6 +235,16 @@ void Queue::configure(const FieldTable& _settings) void Queue::destroy() { + if (alternateExchange.get()) { + Mutex::ScopedLock locker(lock); + while(!messages.empty()){ + DeliverableMessage msg(messages.front()); + alternateExchange->route(msg, msg.getMessage().getRoutingKey(), + &(msg.getMessage().getApplicationHeaders())); + pop(); + } + } + if (store) { store->destroy(*this); } @@ -289,3 +301,8 @@ Queue::shared_ptr Queue::decode(QueueRegistry& queues, framing::Buffer& buffer) return result.first; } + +void Queue::setAlternateExchange(boost::shared_ptr<Exchange> exchange) +{ + alternateExchange = exchange; +} |