diff options
| author | Alan Conway <aconway@apache.org> | 2008-10-30 21:07:28 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-10-30 21:07:28 +0000 |
| commit | 364b62744a35f7e48332af00217a1848345cd39a (patch) | |
| tree | d8cab9a5c824133e4429919a9c129beaec0ce456 /cpp/src/qpid/broker/Queue.cpp | |
| parent | 5e79599484a675baabf45e6b2c50635dbd6b1119 (diff) | |
| download | qpid-python-364b62744a35f7e48332af00217a1848345cd39a.tar.gz | |
Replicate session state for un-acknowledged messages to new cluster members.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@709242 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Queue.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/Queue.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp index 968720050d..388b2d77dd 100644 --- a/cpp/src/qpid/broker/Queue.cpp +++ b/cpp/src/qpid/broker/Queue.cpp @@ -380,15 +380,12 @@ struct PositionEquals { }; }// namespace -bool Queue::find(QueuedMessage& msg, SequenceNumber pos) const { +QueuedMessage Queue::find(SequenceNumber pos) const { Mutex::ScopedLock locker(messageLock); Messages::const_iterator i = std::find_if(messages.begin(), messages.end(), PositionEquals(pos)); - if (i == messages.end()) - return false; - else { - msg = *i; - return true; - } + if (i != messages.end()) + return *i; + return QueuedMessage(); } void Queue::consume(Consumer::shared_ptr c, bool requestExclusive){ @@ -876,9 +873,6 @@ Manageable::status_t Queue::ManagementMethod (uint32_t methodId, Args& args, str } void Queue::setPosition(SequenceNumber n) { - if (n <= sequence) - throw InvalidArgumentException(QPID_MSG("Invalid position " << n << " < " << sequence - << " for queue " << name)); + Mutex::ScopedLock locker(messageLock); sequence = n; - --sequence; // Decrement so ++sequence will return n. } |
