You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2008/11/10 18:53:27 UTC

svn commit: r712709 - in /incubator/qpid/trunk/qpid/cpp/src/qpid: agent/ManagementAgentImpl.cpp management/ManagementBroker.cpp

Author: tross
Date: Mon Nov 10 09:53:27 2008
New Revision: 712709

URL: http://svn.apache.org/viewvc?rev=712709&view=rev
Log:
QPID-1446 - A more efficient data structure for freeing management objects.
Namespace cleanup.

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp?rev=712709&r1=712708&r2=712709&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp Mon Nov 10 09:53:27 2008
@@ -36,6 +36,7 @@
 using namespace qpid::framing;
 using namespace qpid::management;
 using namespace qpid::sys;
+using namespace std;
 using std::stringstream;
 using std::ofstream;
 using std::ifstream;
@@ -140,8 +141,8 @@
     storeData(true);
 }
 
-void ManagementAgentImpl::registerClass(std::string& packageName,
-                                        std::string& className,
+void ManagementAgentImpl::registerClass(string& packageName,
+                                        string& className,
                                         uint8_t*     md5Sum,
                                         management::ManagementObject::writeSchemaCall_t schemaCall)
 { 
@@ -150,8 +151,8 @@
     addClassLocal(ManagementItem::CLASS_KIND_TABLE, pIter, className, md5Sum, schemaCall);
 }
 
-void ManagementAgentImpl::registerEvent(std::string& packageName,
-                                        std::string& eventName,
+void ManagementAgentImpl::registerEvent(string& packageName,
+                                        string& eventName,
                                         uint8_t*     md5Sum,
                                         management::ManagementObject::writeSchemaCall_t schemaCall)
 { 
@@ -399,7 +400,7 @@
             try {
                 outBuffer.record();
                 iter->second->doMethod(methodName, inBuffer, outBuffer);
-            } catch(std::exception& e) {
+            } catch(exception& e) {
                 outBuffer.restore();
                 outBuffer.putLong(Manageable::STATUS_EXCEPTION);
                 outBuffer.putMediumString(e.what());
@@ -534,8 +535,8 @@
         return pIter;
 
     // No such package found, create a new map entry.
-    std::pair<PackageMap::iterator, bool> result =
-        packages.insert(std::pair<string, ClassMap>(name, ClassMap()));
+    pair<PackageMap::iterator, bool> result =
+        packages.insert(pair<string, ClassMap>(name, ClassMap()));
 
     // Publish a package-indication message
     Buffer   outBuffer(outputBuffer, MA_BUFFER_SIZE);
@@ -577,7 +578,7 @@
         return;
 
     // No such class found, create a new class with local information.
-    cMap.insert(std::pair<SchemaClassKey, SchemaClass>(key, SchemaClass(schemaCall, classKind)));
+    cMap.insert(pair<SchemaClassKey, SchemaClass>(key, SchemaClass(schemaCall, classKind)));
 }
 
 void ManagementAgentImpl::encodePackageIndication(Buffer&              buf,
@@ -605,7 +606,7 @@
     char                msgChars[BUFSIZE];
     uint32_t            contentSize;
     string              routingKey;
-    std::list<ObjectId> deleteList;
+    list<pair<ObjectId, ManagementObject*> > deleteList;
 
     if (!connected)
         return;
@@ -681,7 +682,7 @@
                 }
 
                 if (object->isDeleted())
-                    deleteList.push_back(iter->first);
+                    deleteList.push_back(pair<ObjectId, ManagementObject*>(iter->first, object));
 
                 if (msgBuffer.available() < (BUFSIZE / 2))
                     break;
@@ -697,14 +698,11 @@
     }
 
     // Delete flagged objects
-    for (std::list<ObjectId>::reverse_iterator iter = deleteList.rbegin();
+    for (list<pair<ObjectId, ManagementObject*> >::reverse_iterator iter = deleteList.rbegin();
          iter != deleteList.rend();
          iter++) {
-        ManagementObjectMap::iterator miter = managementObjects.find(*iter);
-        if (miter != managementObjects.end()) {
-            delete miter->second;
-            managementObjects.erase(*iter);
-        }
+        delete iter->second;
+        managementObjects.erase(iter->first);
     }
 
     deleteList.clear();
@@ -744,7 +742,7 @@
                     try {
                         Mutex::ScopedUnlock _unlock(connLock);
                         subscriptions->run();
-                    } catch (std::exception) {}
+                    } catch (exception) {}
 
                     if (agent.debugLevel)
                         cout << "QMF Agent connection has been lost" << endl;
@@ -757,7 +755,7 @@
                 session.close();
                 connection.close();
             }
-        } catch (std::exception &e) {
+        } catch (exception &e) {
             if (delay < delayMax)
                 delay *= delayFactor;
             if (agent.debugLevel)
@@ -804,7 +802,7 @@
     msg.setData(data);
     try {
         session.messageTransfer(arg::content=msg, arg::destination=exchange);
-    } catch(std::exception&) {}
+    } catch(exception&) {}
 }
 
 void ManagementAgentImpl::ConnectionThread::bindToBank(uint32_t brokerBank, uint32_t agentBank)

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp?rev=712709&r1=712708&r2=712709&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp Mon Nov 10 09:53:27 2008
@@ -322,7 +322,7 @@
     DeliverableMessage deliverable (msg);
     try {
         exchange->route(deliverable, routingKey, 0);
-    } catch(std::exception&) {}
+    } catch(exception&) {}
 }
 
 void ManagementBroker::moveNewObjectsLH()
@@ -342,7 +342,7 @@
     char                msgChars[BUFSIZE];
     uint32_t            contentSize;
     string              routingKey;
-    std::list<ObjectId> deleteList;
+    list<pair<ObjectId, ManagementObject*> > deleteList;
 
     {
         Buffer msgBuffer(msgChars, BUFSIZE);
@@ -402,19 +402,16 @@
             sendBuffer (msgBuffer, contentSize, mExchange, routingKey);
         }
 
-        if (object->isDeleted ())
-            deleteList.push_back (iter->first);
+        if (object->isDeleted())
+            deleteList.push_back(pair<ObjectId, ManagementObject*>(iter->first, object));
     }
 
     // Delete flagged objects
-    for (std::list<ObjectId>::reverse_iterator iter = deleteList.rbegin ();
-         iter != deleteList.rend ();
+    for (list<pair<ObjectId, ManagementObject*> >::reverse_iterator iter = deleteList.rbegin();
+         iter != deleteList.rend();
          iter++) {
-        ManagementObjectMap::iterator miter = managementObjects.find(*iter);
-        if (miter != managementObjects.end()) {
-            delete miter->second;
-            managementObjects.erase(*iter);
-        }
+        delete iter->second;
+        managementObjects.erase(iter->first);
     }
 
     if (!deleteList.empty()) {
@@ -493,7 +490,7 @@
 
     if (acl != 0) {
         string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId();
-        std::map<acl::Property, string> params;
+        map<acl::Property, string> params;
         params[acl::PROP_SCHEMAPACKAGE] = packageName;
         params[acl::PROP_SCHEMACLASS]   = className;
 
@@ -521,7 +518,7 @@
             try {
                 outBuffer.record();
                 iter->second->doMethod(methodName, inBuffer, outBuffer);
-            } catch(std::exception& e) {
+            } catch(exception& e) {
                 outBuffer.restore();
                 outBuffer.putLong(Manageable::STATUS_EXCEPTION);
                 outBuffer.putMediumString(e.what());
@@ -567,7 +564,7 @@
 
 void ManagementBroker::handlePackageIndLH (Buffer& inBuffer, string /*replyToKey*/, uint32_t /*sequence*/)
 {
-    std::string packageName;
+    string packageName;
 
     inBuffer.getShortString(packageName);
     findOrAddPackageLH(packageName);
@@ -575,7 +572,7 @@
 
 void ManagementBroker::handleClassQueryLH(Buffer& inBuffer, string replyToKey, uint32_t sequence)
 {
-    std::string packageName;
+    string packageName;
 
     inBuffer.getShortString(packageName);
     PackageMap::iterator pIter = packages.find(packageName);
@@ -604,7 +601,7 @@
 
 void ManagementBroker::handleClassIndLH (Buffer& inBuffer, string replyToKey, uint32_t)
 {
-    std::string packageName;
+    string packageName;
     SchemaClassKey key;
 
     uint8_t kind = inBuffer.getOctet();
@@ -907,7 +904,7 @@
         uint8_t hash[16];
         string  methodName;
 
-        std::map<acl::Property, string> params;
+        map<acl::Property, string> params;
         ObjectId objId(inBuffer);
         inBuffer.getShortString(packageName);
         inBuffer.getShortString(className);
@@ -983,7 +980,7 @@
     else if (opcode == 'M') handleMethodRequestLH  (inBuffer, replyToKey, sequence, msg.getPublisher());
 }
 
-ManagementBroker::PackageMap::iterator ManagementBroker::findOrAddPackageLH(std::string name)
+ManagementBroker::PackageMap::iterator ManagementBroker::findOrAddPackageLH(string name)
 {
     PackageMap::iterator pIter = packages.find (name);
     if (pIter != packages.end ())
@@ -1095,7 +1092,7 @@
                 aft.decode(inBuffer);
             }
         }
-    } catch (std::exception& /*e*/) {
+    } catch (exception& /*e*/) {
         return 0;
     }
 
@@ -1127,7 +1124,7 @@
             FieldTable ft;
             ft.decode(inBuffer);
         }
-    } catch (std::exception& /*e*/) {
+    } catch (exception& /*e*/) {
         return 0;
     }