summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-11-13 04:15:15 +0000
committerTed Ross <tross@apache.org>2008-11-13 04:15:15 +0000
commit45b4ce55e9bb52f9d753b9e61ec19f07dc9f5009 (patch)
tree2e976b7d615f521ae5f8cdfb6432faaa6233402b /cpp/src/qpid/management
parent44d591ab8b7a1edf567ce6f2fba170cdf619ade1 (diff)
downloadqpid-python-45b4ce55e9bb52f9d753b9e61ec19f07dc9f5009.tar.gz
Updated qmf-agent API to allow user to specify uid, password, mechanism, and protocol.
Fixed qmf-console bug related to routing keys of object messages. Pass the binding key into the management agent to allow for selective broadcast of object data. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@713631 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/management')
-rw-r--r--cpp/src/qpid/management/ManagementBroker.cpp23
-rw-r--r--cpp/src/qpid/management/ManagementBroker.h22
-rw-r--r--cpp/src/qpid/management/ManagementExchange.cpp4
3 files changed, 27 insertions, 22 deletions
diff --git a/cpp/src/qpid/management/ManagementBroker.cpp b/cpp/src/qpid/management/ManagementBroker.cpp
index e2c735e660..23ef8d9e6a 100644
--- a/cpp/src/qpid/management/ManagementBroker.cpp
+++ b/cpp/src/qpid/management/ManagementBroker.cpp
@@ -113,7 +113,7 @@ ManagementBroker::~ManagementBroker ()
}
}
-void ManagementBroker::configure(string _dataDir, uint16_t _interval,
+void ManagementBroker::configure(const string& _dataDir, uint16_t _interval,
qpid::broker::Broker* _broker, int _threads)
{
dataDir = _dataDir;
@@ -178,8 +178,8 @@ void ManagementBroker::setExchange (qpid::broker::Exchange::shared_ptr _mexchang
dExchange = _dexchange;
}
-void ManagementBroker::registerClass (string& packageName,
- string& className,
+void ManagementBroker::registerClass (const string& packageName,
+ const string& className,
uint8_t* md5Sum,
ManagementObject::writeSchemaCall_t schemaCall)
{
@@ -188,8 +188,8 @@ void ManagementBroker::registerClass (string& packageName,
addClassLH(ManagementItem::CLASS_KIND_TABLE, pIter, className, md5Sum, schemaCall);
}
-void ManagementBroker::registerEvent (string& packageName,
- string& eventName,
+void ManagementBroker::registerEvent (const string& packageName,
+ const string& eventName,
uint8_t* md5Sum,
ManagementObject::writeSchemaCall_t schemaCall)
{
@@ -251,7 +251,7 @@ void ManagementBroker::Periodic::fire ()
broker.periodicProcessing ();
}
-void ManagementBroker::clientAdded (void)
+void ManagementBroker::clientAdded (const std::string& /*routingKey*/)
{
Mutex::ScopedLock lock (userLock);
@@ -386,7 +386,7 @@ void ManagementBroker::periodicProcessing (void)
contentSize = BUFSIZE - msgBuffer.available ();
msgBuffer.reset ();
- routingKey = "console.obj." + object->getPackageName() + "." + object->getClassName ();
+ routingKey = "console.obj." + object->getPackageName() + "." + object->getClassName() + "1.0";
sendBuffer (msgBuffer, contentSize, mExchange, routingKey);
}
@@ -398,7 +398,7 @@ void ManagementBroker::periodicProcessing (void)
contentSize = BUFSIZE - msgBuffer.available ();
msgBuffer.reset ();
- routingKey = "console.obj." + object->getPackageName() + "." + object->getClassName ();
+ routingKey = "console.obj." + object->getPackageName() + "." + object->getClassName() + "1.0";
sendBuffer (msgBuffer, contentSize, mExchange, routingKey);
}
@@ -721,7 +721,7 @@ bool ManagementBroker::bankInUse (uint32_t bank)
for (RemoteAgentMap::iterator aIter = remoteAgents.begin();
aIter != remoteAgents.end();
aIter++)
- if (aIter->second->objIdBank == bank)
+ if (aIter->second->brokerBank == bank)
return true;
return false;
}
@@ -796,7 +796,8 @@ void ManagementBroker::handleAttachRequestLH (Buffer& inBuffer, string replyToKe
assignedBank = assignBankLH(requestedAgentBank);
RemoteAgent* agent = new RemoteAgent;
- agent->objIdBank = assignedBank;
+ agent->brokerBank = brokerBank;
+ agent->agentBank = assignedBank;
agent->routingKey = replyToKey;
agent->connectionRef = connectionRef;
agent->mgmtObject = new _qmf::Agent (this, agent);
@@ -1006,7 +1007,7 @@ ManagementBroker::PackageMap::iterator ManagementBroker::findOrAddPackageLH(stri
void ManagementBroker::addClassLH(uint8_t kind,
PackageMap::iterator pIter,
- string& className,
+ const string& className,
uint8_t* md5Sum,
ManagementObject::writeSchemaCall_t schemaCall)
{
diff --git a/cpp/src/qpid/management/ManagementBroker.h b/cpp/src/qpid/management/ManagementBroker.h
index 3564d462df..77f4a53836 100644
--- a/cpp/src/qpid/management/ManagementBroker.h
+++ b/cpp/src/qpid/management/ManagementBroker.h
@@ -47,30 +47,33 @@ public:
ManagementBroker ();
virtual ~ManagementBroker ();
- void configure (std::string dataDir, uint16_t interval, qpid::broker::Broker* broker, int threadPoolSize);
+ void configure (const std::string& dataDir, uint16_t interval,
+ qpid::broker::Broker* broker, int threadPoolSize);
void setInterval (uint16_t _interval) { interval = _interval; }
void setExchange (qpid::broker::Exchange::shared_ptr mgmtExchange,
qpid::broker::Exchange::shared_ptr directExchange);
int getMaxThreads () { return threadPoolSize; }
- void registerClass (std::string& packageName,
- std::string& className,
+ void registerClass (const std::string& packageName,
+ const std::string& className,
uint8_t* md5Sum,
ManagementObject::writeSchemaCall_t schemaCall);
- void registerEvent (std::string& packageName,
- std::string& eventName,
+ void registerEvent (const std::string& packageName,
+ const std::string& eventName,
uint8_t* md5Sum,
ManagementObject::writeSchemaCall_t schemaCall);
ObjectId addObject (ManagementObject* object,
uint64_t persistId = 0);
void raiseEvent(const ManagementEvent& event, severity_t severity = SEV_DEFAULT);
- void clientAdded ();
+ void clientAdded (const std::string& routingKey);
bool dispatchCommand (qpid::broker::Deliverable& msg,
const std::string& routingKey,
const framing::FieldTable* args);
const framing::Uuid& getUuid() const { return uuid; }
// Stubs for remote management agent calls
- void init (std::string, uint16_t, uint16_t, bool, std::string) { assert(0); }
+ void init (const std::string&, uint16_t, uint16_t, bool,
+ const std::string&, const std::string&, const std::string&,
+ const std::string&, const std::string&) { assert(0); }
uint32_t pollCallbacks (uint32_t) { assert(0); return 0; }
int getSignalFd () { assert(0); return -1; }
@@ -91,7 +94,8 @@ private:
//
struct RemoteAgent : public Manageable
{
- uint32_t objIdBank;
+ uint32_t brokerBank;
+ uint32_t agentBank;
std::string routingKey;
ObjectId connectionRef;
qmf::org::apache::qpid::broker::Agent* mgmtObject;
@@ -195,7 +199,7 @@ private:
PackageMap::iterator findOrAddPackageLH(std::string name);
void addClassLH(uint8_t kind,
PackageMap::iterator pIter,
- std::string& className,
+ const std::string& className,
uint8_t* md5Sum,
ManagementObject::writeSchemaCall_t schemaCall);
void encodePackageIndication (framing::Buffer& buf,
diff --git a/cpp/src/qpid/management/ManagementExchange.cpp b/cpp/src/qpid/management/ManagementExchange.cpp
index 4ccf8e68c9..4dcafbfcdd 100644
--- a/cpp/src/qpid/management/ManagementExchange.cpp
+++ b/cpp/src/qpid/management/ManagementExchange.cpp
@@ -56,8 +56,8 @@ bool ManagementExchange::bind (Queue::shared_ptr queue,
const string& routingKey,
const qpid::framing::FieldTable* args)
{
- managementAgent->clientAdded ();
- return TopicExchange::bind (queue, routingKey, args);
+ managementAgent->clientAdded(routingKey);
+ return TopicExchange::bind(queue, routingKey, args);
}
void ManagementExchange::setManagmentAgent (ManagementBroker* agent)