diff options
| author | Andrew Stitcher <astitcher@apache.org> | 2012-03-05 19:12:32 +0000 |
|---|---|---|
| committer | Andrew Stitcher <astitcher@apache.org> | 2012-03-05 19:12:32 +0000 |
| commit | 9e7c2172f527825b254c2799bf576779b06cc332 (patch) | |
| tree | 088dc721afa16cbfa366126f985749c542e8a496 /cpp/src/qpid/management/ManagementTopicExchange.cpp | |
| parent | 7a28effc88c2200aa975e7e8bdac0971c47db34f (diff) | |
| download | qpid-python-9e7c2172f527825b254c2799bf576779b06cc332.tar.gz | |
QPID-3883: Using application headers in messages causes a very large slowdown
Change Exchange route interface not to require a fieldtable
- Exchanges that actually use the fieldtable for routing
need to extract it directly from the message themselves.
This avoids the need to extract the fieldtable from the message
unnecessarily.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1297183 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/management/ManagementTopicExchange.cpp')
| -rw-r--r-- | cpp/src/qpid/management/ManagementTopicExchange.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cpp/src/qpid/management/ManagementTopicExchange.cpp b/cpp/src/qpid/management/ManagementTopicExchange.cpp index ee8657646f..587cc660df 100644 --- a/cpp/src/qpid/management/ManagementTopicExchange.cpp +++ b/cpp/src/qpid/management/ManagementTopicExchange.cpp @@ -39,18 +39,18 @@ ManagementTopicExchange::ManagementTopicExchange(const std::string& _name, TopicExchange(_name, _durable, _args, _parent, b), managementAgent(0) {} -void ManagementTopicExchange::route(Deliverable& msg, - const string& routingKey, - const FieldTable* args) +void ManagementTopicExchange::route(Deliverable& msg) { bool routeIt = true; + const string& routingKey = msg.getMessage().getRoutingKey(); + const FieldTable* args = msg.getMessage().getApplicationHeaders(); // Intercept management agent commands if (managementAgent) routeIt = managementAgent->dispatchCommand(msg, routingKey, args, true, qmfVersion); if (routeIt) - TopicExchange::route(msg, routingKey, args); + TopicExchange::route(msg); } bool ManagementTopicExchange::bind(Queue::shared_ptr queue, |
