diff options
Diffstat (limited to 'qpid/cpp/src/qpid/broker/Queue.cpp')
-rw-r--r-- | qpid/cpp/src/qpid/broker/Queue.cpp | 13 |
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; |