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 | 0d54ccc0c7d3c3d2fa370e44ef69149f05514b9e (patch) | |
| tree | 833515940512637561c7ffd626be64a48ebce33e /cpp | |
| parent | 2a3e0be5688657c9e99c8777f8ccccd91e987a4d (diff) | |
| download | qpid-python-0d54ccc0c7d3c3d2fa370e44ef69149f05514b9e.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/qpid@1436517 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
| -rw-r--r-- | cpp/src/qpid/broker/Broker.cpp | 20 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/Broker.h | 4 |
2 files changed, 13 insertions, 11 deletions
diff --git a/cpp/src/qpid/broker/Broker.cpp b/cpp/src/qpid/broker/Broker.cpp index a1169e073a..b28216f998 100644 --- a/cpp/src/qpid/broker/Broker.cpp +++ b/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/cpp/src/qpid/broker/Broker.h b/cpp/src/qpid/broker/Broker.h index 842d206795..5c4c2a279f 100644 --- a/cpp/src/qpid/broker/Broker.h +++ b/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, |
