diff options
| author | Ted Ross <tross@apache.org> | 2008-09-23 18:42:45 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2008-09-23 18:42:45 +0000 |
| commit | 1af11d7c52307f2cdd98db9ea9595bade6abbc9d (patch) | |
| tree | 630e8fbb47ef524dc8e49b4dbcd8e01e27956b2b /cpp/src/qpid/broker/Broker.cpp | |
| parent | 204ab92cbc433e499f4e7b6d4e5423924544c6c0 (diff) | |
| download | qpid-python-1af11d7c52307f2cdd98db9ea9595bade6abbc9d.tar.gz | |
QPID-1290 - Patch from William Henry
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@698275 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Broker.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/Broker.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Broker.cpp b/cpp/src/qpid/broker/Broker.cpp index 8b3be54d15..209599cfdd 100644 --- a/cpp/src/qpid/broker/Broker.cpp +++ b/cpp/src/qpid/broker/Broker.cpp @@ -32,6 +32,7 @@ #include "qmf/org/apache/qpid/broker/Package.h" #include "qmf/org/apache/qpid/broker/ArgsBrokerEcho.h" +#include "qmf/org/apache/qpid/broker/ArgsBrokerQueueMoveMessages.h" #include "qpid/management/ManagementExchange.h" #include "qpid/log/Statement.h" #include "qpid/framing/AMQFrame.h" @@ -349,6 +350,15 @@ Manageable::status_t Broker::ManagementMethod (uint32_t methodId, status = Manageable::STATUS_OK; break; } + case _qmf::Broker::METHOD_QUEUEMOVEMESSAGES : { + _qmf::ArgsBrokerQueueMoveMessages& moveArgs= + dynamic_cast<_qmf::ArgsBrokerQueueMoveMessages&>(args); + if (queueMoveMessages(moveArgs.i_srcQueue, moveArgs.i_destQueue, moveArgs.i_qty)) + status = Manageable::STATUS_OK; + else + return Manageable::STATUS_INVALID_PARAMETER; + break; + } default: status = Manageable::STATUS_NOT_IMPLEMENTED; break; @@ -397,6 +407,22 @@ void Broker::connect( connect(addr.host, addr.port, false, failed, f); } +uint32_t Broker::queueMoveMessages( + const std::string& srcQueue, + const std::string& destQueue, + uint32_t qty) +{ + Queue::shared_ptr src_queue = queues.find(srcQueue); + if (!src_queue) + return 0; + Queue::shared_ptr dest_queue = queues.find(destQueue); + if (!dest_queue) + return 0; + + return src_queue->move(dest_queue, qty); +} + + boost::shared_ptr<sys::Poller> Broker::getPoller() { return poller; } }} // namespace qpid::broker |
