summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/broker/Queue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/broker/Queue.cpp')
-rw-r--r--qpid/cpp/src/qpid/broker/Queue.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/broker/Queue.cpp b/qpid/cpp/src/qpid/broker/Queue.cpp
index 625c6cceba..858e8748c4 100644
--- a/qpid/cpp/src/qpid/broker/Queue.cpp
+++ b/qpid/cpp/src/qpid/broker/Queue.cpp
@@ -345,6 +345,19 @@ void Queue::process(Message& msg)
}
}
+void Queue::mergeMessageAnnotations(const QueueCursor& position,
+ const qpid::types::Variant::Map& messageAnnotations)
+{
+ Mutex::ScopedLock locker(messageLock);
+ Message *message = messages->find(position);
+ if (!message) return;
+
+ qpid::types::Variant::Map::const_iterator it;
+ for (it = messageAnnotations.begin(); it != messageAnnotations.end(); ++it) {
+ message->addAnnotation(it->first, it->second);
+ }
+}
+
void Queue::release(const QueueCursor& position, bool markRedelivered)
{
QueueListeners::NotificationSet copy;