diff options
| author | Ted Ross <tross@apache.org> | 2010-04-16 19:03:36 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2010-04-16 19:03:36 +0000 |
| commit | 982a0d216f6f7da64c2e614672ecc09a2dcd4d4f (patch) | |
| tree | 8c964cb97ce3a1ed3772cfd77d74808d888a7d4d /cpp/src/qpid/broker | |
| parent | b6d073ef81e8fef3dd1319136ec3bb12c4da73fc (diff) | |
| download | qpid-python-982a0d216f6f7da64c2e614672ecc09a2dcd4d4f.tar.gz | |
Fixed problems with the broker's QMFv2 mode:
- app_id is a message property, not an application header
- even in v2 mode, the agent must respond to v1 schema requests
- missing object_id was added to the periodic data updates
- epoch/boot-sequence added to agent information (locate-response, heartbeat)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@935044 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker')
| -rw-r--r-- | cpp/src/qpid/broker/Message.cpp | 5 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/Message.h | 1 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/MessageAdapter.cpp | 6 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/MessageAdapter.h | 2 |
4 files changed, 14 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Message.cpp b/cpp/src/qpid/broker/Message.cpp index 65106cb99b..b086d59ca5 100644 --- a/cpp/src/qpid/broker/Message.cpp +++ b/cpp/src/qpid/broker/Message.cpp @@ -99,6 +99,11 @@ const FieldTable* Message::getApplicationHeaders() const return getAdapter().getApplicationHeaders(frames); } +std::string Message::getAppId() const +{ + return getAdapter().getAppId(frames); +} + bool Message::isPersistent() const { return (getAdapter().isPersistent(frames) || forcePersistentPolicy); diff --git a/cpp/src/qpid/broker/Message.h b/cpp/src/qpid/broker/Message.h index 353044c577..4330a03469 100644 --- a/cpp/src/qpid/broker/Message.h +++ b/cpp/src/qpid/broker/Message.h @@ -73,6 +73,7 @@ public: QPID_BROKER_EXTERN std::string getExchangeName() const; bool isImmediate() const; QPID_BROKER_EXTERN const framing::FieldTable* getApplicationHeaders() const; + QPID_BROKER_EXTERN std::string getAppId() const; framing::FieldTable& getOrInsertHeaders(); QPID_BROKER_EXTERN bool isPersistent() const; bool requiresAccept(); diff --git a/cpp/src/qpid/broker/MessageAdapter.cpp b/cpp/src/qpid/broker/MessageAdapter.cpp index acec2b2af6..0eb4a6fa22 100644 --- a/cpp/src/qpid/broker/MessageAdapter.cpp +++ b/cpp/src/qpid/broker/MessageAdapter.cpp @@ -72,4 +72,10 @@ namespace broker{ const framing::DeliveryProperties* p = f.getHeaders()->get<framing::DeliveryProperties>(); return p ? p->getPriority() : 0; } + + std::string TransferAdapter::getAppId(const framing::FrameSet& f) + { + const framing::MessageProperties* p = f.getHeaders()->get<framing::MessageProperties>(); + return p ? p->getAppId() : empty; + } }} diff --git a/cpp/src/qpid/broker/MessageAdapter.h b/cpp/src/qpid/broker/MessageAdapter.h index cbc75ab6e2..df50db4063 100644 --- a/cpp/src/qpid/broker/MessageAdapter.h +++ b/cpp/src/qpid/broker/MessageAdapter.h @@ -41,6 +41,7 @@ struct MessageAdapter 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; + virtual std::string getAppId(const framing::FrameSet& f) = 0; }; struct TransferAdapter : MessageAdapter @@ -52,6 +53,7 @@ struct TransferAdapter : MessageAdapter bool isImmediate(const framing::FrameSet&); bool requiresAccept(const framing::FrameSet& f); uint8_t getPriority(const framing::FrameSet& f); + virtual std::string getAppId(const framing::FrameSet& f); }; }} |
