summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management/ManagementDirectExchange.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/management/ManagementDirectExchange.cpp')
-rw-r--r--cpp/src/qpid/management/ManagementDirectExchange.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/cpp/src/qpid/management/ManagementDirectExchange.cpp b/cpp/src/qpid/management/ManagementDirectExchange.cpp
index 0813e30891..6dc41ef073 100644
--- a/cpp/src/qpid/management/ManagementDirectExchange.cpp
+++ b/cpp/src/qpid/management/ManagementDirectExchange.cpp
@@ -29,13 +29,16 @@ using namespace qpid::framing;
using namespace qpid::sys;
ManagementDirectExchange::ManagementDirectExchange(const string& _name, Manageable* _parent, Broker* b) :
- Exchange (_name, _parent, b), DirectExchange(_name, _parent, b) {}
+ Exchange (_name, _parent, b),
+ DirectExchange(_name, _parent, b),
+ managementAgent(0) {}
ManagementDirectExchange::ManagementDirectExchange(const std::string& _name,
bool _durable,
const FieldTable& _args,
Manageable* _parent, Broker* b) :
Exchange (_name, _durable, _args, _parent, b),
- DirectExchange(_name, _durable, _args, _parent, b) {}
+ DirectExchange(_name, _durable, _args, _parent, b),
+ managementAgent(0) {}
void ManagementDirectExchange::route(Deliverable& msg,
const string& routingKey,
@@ -43,7 +46,8 @@ void ManagementDirectExchange::route(Deliverable& msg,
{
bool routeIt = true;
- // TODO: Intercept messages directed to the embedded agent and send them to the management agent.
+ if (managementAgent)
+ routeIt = managementAgent->dispatchCommand(msg, routingKey, args, false /*direct*/);
if (routeIt)
DirectExchange::route(msg, routingKey, args);