From 5eccd77028ee670a3375311b2ac1af84c3a59438 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Wed, 3 Feb 2010 14:10:44 +0000 Subject: Added hook to retrieve priority from the delivery properties of a message. This is to enable eventual work on priority-ordering in Queues. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@906056 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/Message.cpp | 4 ++++ cpp/src/qpid/broker/Message.h | 2 ++ cpp/src/qpid/broker/MessageAdapter.cpp | 5 +++++ cpp/src/qpid/broker/MessageAdapter.h | 2 ++ 4 files changed, 13 insertions(+) (limited to 'cpp/src') diff --git a/cpp/src/qpid/broker/Message.cpp b/cpp/src/qpid/broker/Message.cpp index 47ca7a7ae8..58de0cc9dc 100644 --- a/cpp/src/qpid/broker/Message.cpp +++ b/cpp/src/qpid/broker/Message.cpp @@ -420,6 +420,10 @@ void Message::resetDequeueCompleteCallback() { dequeueCallback = 0; } +uint8_t Message::getPriority() const { + return getAdapter().getPriority(frames); +} + framing::FieldTable& Message::getOrInsertHeaders() { return getProperties()->getApplicationHeaders(); diff --git a/cpp/src/qpid/broker/Message.h b/cpp/src/qpid/broker/Message.h index 375fa9ce26..becde0f872 100644 --- a/cpp/src/qpid/broker/Message.h +++ b/cpp/src/qpid/broker/Message.h @@ -161,6 +161,8 @@ public: void setDequeueCompleteCallback(MessageCallback& cb); void resetDequeueCompleteCallback(); + uint8_t getPriority() const; + private: typedef std::map > Replacement; diff --git a/cpp/src/qpid/broker/MessageAdapter.cpp b/cpp/src/qpid/broker/MessageAdapter.cpp index c0c1c4445a..acec2b2af6 100644 --- a/cpp/src/qpid/broker/MessageAdapter.cpp +++ b/cpp/src/qpid/broker/MessageAdapter.cpp @@ -67,4 +67,9 @@ namespace broker{ return b && b->getAcceptMode() == 0/*EXPLICIT == 0*/; } + uint8_t TransferAdapter::getPriority(const framing::FrameSet& f) + { + const framing::DeliveryProperties* p = f.getHeaders()->get(); + return p ? p->getPriority() : 0; + } }} diff --git a/cpp/src/qpid/broker/MessageAdapter.h b/cpp/src/qpid/broker/MessageAdapter.h index 61a1bc4794..cbc75ab6e2 100644 --- a/cpp/src/qpid/broker/MessageAdapter.h +++ b/cpp/src/qpid/broker/MessageAdapter.h @@ -40,6 +40,7 @@ struct MessageAdapter virtual const framing::FieldTable* getApplicationHeaders(const framing::FrameSet& f) = 0; virtual bool isPersistent(const framing::FrameSet& f) = 0; virtual bool requiresAccept(const framing::FrameSet& f) = 0; + virtual uint8_t getPriority(const framing::FrameSet& f) = 0; }; struct TransferAdapter : MessageAdapter @@ -50,6 +51,7 @@ struct TransferAdapter : MessageAdapter virtual bool isPersistent(const framing::FrameSet& f); bool isImmediate(const framing::FrameSet&); bool requiresAccept(const framing::FrameSet& f); + uint8_t getPriority(const framing::FrameSet& f); }; }} -- cgit v1.2.1