diff options
| author | Ted Ross <tross@apache.org> | 2013-01-21 18:02:51 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2013-01-21 18:02:51 +0000 |
| commit | cdb684fd1e8996772be47579e414cfe6a7643eb7 (patch) | |
| tree | e5f94fdeaec284f197de1a151ce4767ade3688cc /qpid/cpp/src | |
| parent | ab043489741e08dccbac3753603987151b1daa81 (diff) | |
| download | qpid-python-cdb684fd1e8996772be47579e414cfe6a7643eb7.tar.gz | |
QPID-4543 - The Move-Messages method no longer returns an error if no messages were moved.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1436517 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Broker.cpp | 20 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Broker.h | 4 |
2 files changed, 13 insertions, 11 deletions
diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp index a1169e073a..b28216f998 100644 --- a/qpid/cpp/src/qpid/broker/Broker.cpp +++ b/qpid/cpp/src/qpid/broker/Broker.cpp @@ -510,7 +510,7 @@ Manageable::status_t Broker::ManagementMethod (uint32_t methodId, _qmf::ArgsBrokerQueueMoveMessages& moveArgs= dynamic_cast<_qmf::ArgsBrokerQueueMoveMessages&>(args); QPID_LOG (debug, "Broker::queueMoveMessages()"); - if (queueMoveMessages(moveArgs.i_srcQueue, moveArgs.i_destQueue, moveArgs.i_qty, moveArgs.i_filter)) + if (queueMoveMessages(moveArgs.i_srcQueue, moveArgs.i_destQueue, moveArgs.i_qty, moveArgs.i_filter) >= 0) status = Manageable::STATUS_OK; else return Manageable::STATUS_PARAMETER_INVALID; @@ -1019,20 +1019,20 @@ void Broker::connect( else throw NoSuchTransportException(QPID_MSG("Unsupported transport type: " << transport)); } -uint32_t Broker::queueMoveMessages( +int32_t Broker::queueMoveMessages( const std::string& srcQueue, const std::string& destQueue, uint32_t qty, const Variant::Map& filter) { - 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, &filter); + Queue::shared_ptr src_queue = queues.find(srcQueue); + if (!src_queue) + return -1; + Queue::shared_ptr dest_queue = queues.find(destQueue); + if (!dest_queue) + return -1; + + return (int32_t) src_queue->move(dest_queue, qty, &filter); } diff --git a/qpid/cpp/src/qpid/broker/Broker.h b/qpid/cpp/src/qpid/broker/Broker.h index 842d206795..5c4c2a279f 100644 --- a/qpid/cpp/src/qpid/broker/Broker.h +++ b/qpid/cpp/src/qpid/broker/Broker.h @@ -240,8 +240,10 @@ class Broker : public sys::Runnable, public Plugin::Target, /** Move messages from one queue to another. A zero quantity means to move all messages + Return -1 if one of the queues does not exist, otherwise + the number of messages moved. */ - QPID_BROKER_EXTERN uint32_t queueMoveMessages( + QPID_BROKER_EXTERN int32_t queueMoveMessages( const std::string& srcQueue, const std::string& destQueue, uint32_t qty, |
