summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Broker.cpp
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-09-23 18:42:45 +0000
committerTed Ross <tross@apache.org>2008-09-23 18:42:45 +0000
commit1af11d7c52307f2cdd98db9ea9595bade6abbc9d (patch)
tree630e8fbb47ef524dc8e49b4dbcd8e01e27956b2b /cpp/src/qpid/broker/Broker.cpp
parent204ab92cbc433e499f4e7b6d4e5423924544c6c0 (diff)
downloadqpid-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.cpp26
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