diff options
| author | Ted Ross <tross@apache.org> | 2008-11-13 04:15:15 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2008-11-13 04:15:15 +0000 |
| commit | 45b4ce55e9bb52f9d753b9e61ec19f07dc9f5009 (patch) | |
| tree | 2e976b7d615f521ae5f8cdfb6432faaa6233402b /cpp/src/qpid/management | |
| parent | 44d591ab8b7a1edf567ce6f2fba170cdf619ade1 (diff) | |
| download | qpid-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.cpp | 23 | ||||
| -rw-r--r-- | cpp/src/qpid/management/ManagementBroker.h | 22 | ||||
| -rw-r--r-- | cpp/src/qpid/management/ManagementExchange.cpp | 4 |
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) |
