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 2010/04/23 23:00:11 UTC

svn commit: r937516 - in /qpid/trunk/qpid: cpp/src/ cpp/src/qpid/broker/ cpp/src/qpid/cluster/ cpp/src/qpid/management/ extras/qmf/src/py/qmf/

Author: tross
Date: Fri Apr 23 21:00:10 2010
New Revision: 937516

URL: http://svn.apache.org/viewvc?rev=937516&view=rev
Log:
Code cleanup 
  - Removed IdAllocator (it's no longer needed)
  - Cleaned up the calls to ManagementAgent::addObject to handle durable objects
  - Removed the deferred call to addObject for durable objects
  - Removed unneeded calls to self._checkClosed() in qmf.console.Agent

Removed:
    qpid/trunk/qpid/cpp/src/qpid/management/IdAllocator.h
Modified:
    qpid/trunk/qpid/cpp/src/Makefile.am
    qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp
    qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
    qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp
    qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
    qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h
    qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py

Modified: qpid/trunk/qpid/cpp/src/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/Makefile.am?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/Makefile.am (original)
+++ qpid/trunk/qpid/cpp/src/Makefile.am Fri Apr 23 21:00:10 2010
@@ -639,7 +639,6 @@ libqpidbroker_la_SOURCES = \
   qpid/broker/TxPublish.h \
   qpid/broker/Vhost.cpp \
   qpid/broker/Vhost.h \
-  qpid/management/IdAllocator.h \
   qpid/management/ManagementAgent.cpp \
   qpid/management/ManagementAgent.h \
   qpid/management/ManagementDirectExchange.cpp \

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Fri Apr 23 21:00:10 2010
@@ -185,7 +185,7 @@ Broker::Broker(const Broker::Options& co
         else
             mgmtObject->clr_dataDir();
 
-        managementAgent->addObject(mgmtObject, 0x1000000000000002LL);
+        managementAgent->addObject(mgmtObject, 0, true);
 
         // Since there is currently no support for virtual hosts, a placeholder object
         // representing the implied single virtual host is added here to keep the

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp Fri Apr 23 21:00:10 2010
@@ -132,7 +132,7 @@ Exchange::Exchange (const string& _name,
             mgmtExchange = new _qmf::Exchange (agent, this, parent, _name);
             mgmtExchange->set_durable(durable);
             mgmtExchange->set_autoDelete(false);
-            agent->addObject (mgmtExchange);
+            agent->addObject(mgmtExchange, 0, durable);
         }
     }
 }
@@ -151,15 +151,7 @@ Exchange::Exchange(const string& _name, 
             mgmtExchange->set_durable(durable);
             mgmtExchange->set_autoDelete(false);
             mgmtExchange->set_arguments(ManagementAgent::toMap(args));
-            if (!durable) {
-                if (name.empty()) {
-                    agent->addObject (mgmtExchange, 0x1000000000000004LL);  // Special default exchange ID
-                } else if (name == QPID_MANAGEMENT) {
-                    agent->addObject (mgmtExchange, 0x1000000000000005LL);  // Special management exchange ID
-                } else {
-                    agent->addObject (mgmtExchange, agent->allocateId(this));
-                }
-            }
+            agent->addObject(mgmtExchange, 0, durable);
         }
     }
 
@@ -192,11 +184,6 @@ void Exchange::setAlternate(Exchange::sh
 
 void Exchange::setPersistenceId(uint64_t id) const
 {
-    if (mgmtExchange != 0 && persistenceId == 0)
-    {
-        ManagementAgent* agent = broker->getManagementAgent();
-        agent->addObject (mgmtExchange, 0x2000000000000000LL + id);
-    }
     persistenceId = id;
 }
 
@@ -330,20 +317,19 @@ void Exchange::Binding::startManagement(
         Broker* broker = parent->getBroker();
         if (broker != 0) {
             ManagementAgent* agent = broker->getManagementAgent();
-            if (agent != 0)
-                {
-                    ManagementObject* mo = queue->GetManagementObject();
-                    if (mo != 0)
-                        {
-                            management::ObjectId queueId = mo->getObjectId();
-                            mgmtBinding = new _qmf::Binding
-                                (agent, this, (Manageable*) parent, queueId, key, ManagementAgent::toMap(args));
-                            if (!origin.empty())
-                                mgmtBinding->set_origin(origin);
-                            agent->addObject (mgmtBinding, agent->allocateId(this));
-                            static_cast<_qmf::Queue*>(mo)->inc_bindingCount();
-                        }
+            if (agent != 0) {
+                ManagementObject* mo = queue->GetManagementObject();
+                if (mo != 0) {
+                    management::ObjectId queueId = mo->getObjectId();
+
+                    mgmtBinding = new _qmf::Binding
+                        (agent, this, (Manageable*) parent, queueId, key, ManagementAgent::toMap(args));
+                    if (!origin.empty())
+                        mgmtBinding->set_origin(origin);
+                    agent->addObject(mgmtBinding);
+                    static_cast<_qmf::Queue*>(mo)->inc_bindingCount();
                 }
+            }
         }
     }
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp Fri Apr 23 21:00:10 2010
@@ -74,8 +74,7 @@ Link::Link(LinkRegistry*  _links,
         if (agent != 0)
         {
             mgmtObject = new _qmf::Link(agent, this, parent, _host, _port, _transport, _durable);
-            if (!durable)
-                agent->addObject(mgmtObject);
+            agent->addObject(mgmtObject, 0, durable);
         }
     }
     setStateLH(STATE_WAITING);
@@ -353,10 +352,6 @@ void Link::notifyConnectionForced(const 
 
 void Link::setPersistenceId(uint64_t id) const
 {
-    if (mgmtObject != 0 && persistenceId == 0) {
-        ManagementAgent* agent = broker->getManagementAgent();
-        agent->addObject(mgmtObject, id);
-    }
     persistenceId = id;
 }
 

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp Fri Apr 23 21:00:10 2010
@@ -105,19 +105,12 @@ Queue::Queue(const string& _name, bool _
     broker(b),
     deleted(false)
 {
-    if (parent != 0 && broker != 0)
-    {
+    if (parent != 0 && broker != 0) {
         ManagementAgent* agent = broker->getManagementAgent();
 
-        if (agent != 0)
-        {
+        if (agent != 0) {
             mgmtObject = new _qmf::Queue(agent, this, parent, _name, _store != 0, _autodelete, _owner != 0);
-
-            // Add the object to the management agent only if this queue is not durable.
-            // If it's durable, we will add it later when the queue is assigned a persistenceId.
-            if (store == 0) {
-                agent->addObject (mgmtObject, agent->allocateId(this));
-            }
+            agent->addObject(mgmtObject, 0, store != 0);
         }
     }
 }
@@ -125,7 +118,7 @@ Queue::Queue(const string& _name, bool _
 Queue::~Queue()
 {
     if (mgmtObject != 0)
-        mgmtObject->resourceDestroy ();
+        mgmtObject->resourceDestroy();
 }
 
 bool isLocalTo(const OwnershipToken* token, boost::intrusive_ptr<Message>& msg)
@@ -942,16 +935,11 @@ uint64_t Queue::getPersistenceId() const
 
 void Queue::setPersistenceId(uint64_t _persistenceId) const
 {
-    if (mgmtObject != 0 && persistenceId == 0)
+    if (mgmtObject != 0 && persistenceId == 0 && externalQueueStore)
     {
-        ManagementAgent* agent = broker->getManagementAgent();
-        agent->addObject (mgmtObject, 0x3000000000000000LL + _persistenceId);
-
-        if (externalQueueStore) {
-            ManagementObject* childObj = externalQueueStore->GetManagementObject();
-            if (childObj != 0)
-                childObj->setReference(mgmtObject->getObjectId());
-        }
+        ManagementObject* childObj = externalQueueStore->GetManagementObject();
+        if (childObj != 0)
+            childObj->setReference(mgmtObject->getObjectId());
     }
     persistenceId = _persistenceId;
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp Fri Apr 23 21:00:10 2010
@@ -281,7 +281,7 @@ SemanticState::ConsumerImpl::ConsumerImp
         {
             mgmtObject = new _qmf::Subscription(agent, this, ms , queue->GetManagementObject()->getObjectId() ,name,
                                                 !acquire, ackExpected, exclusive, ManagementAgent::toMap(arguments));
-            agent->addObject (mgmtObject, agent->allocateId(this));
+            agent->addObject (mgmtObject);
             mgmtObject->set_creditMode("WINDOW");
         }
     }

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp Fri Apr 23 21:00:10 2010
@@ -81,7 +81,7 @@ SessionState::SessionState(
             mgmtObject->set_detachedLifespan (0);
             mgmtObject->clr_expireTime();
             if (rateFlowcontrol) mgmtObject->set_maxClientRate(maxRate);
-            agent->addObject (mgmtObject, agent->allocateId(this));
+            agent->addObject(mgmtObject);
         }
     }
     attach(h);

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp Fri Apr 23 21:00:10 2010
@@ -78,7 +78,7 @@ System::System (string _dataDir, Broker*
         mgmtObject->set_version  (version);
         mgmtObject->set_machine  (machine);
 
-        agent->addObject (mgmtObject, 0x1000000000000001LL);
+        agent->addObject(mgmtObject, 0, true);
     }
 }
 

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp Fri Apr 23 21:00:10 2010
@@ -38,7 +38,7 @@ Vhost::Vhost (qpid::management::Manageab
         if (agent != 0)
         {
             mgmtObject = new _qmf::Vhost(agent, this, parentBroker, "/");
-            agent->addObject (mgmtObject, 0x1000000000000003LL);
+            agent->addObject(mgmtObject, 0, true);
         }
     }
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp Fri Apr 23 21:00:10 2010
@@ -157,7 +157,6 @@
 #include "qpid/framing/MessageTransferBody.h"
 #include "qpid/log/Helpers.h"
 #include "qpid/log/Statement.h"
-#include "qpid/management/IdAllocator.h"
 #include "qpid/management/ManagementAgent.h"
 #include "qpid/memory.h"
 #include "qpid/sys/Thread.h"

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp Fri Apr 23 21:00:10 2010
@@ -32,7 +32,6 @@
 #include "qpid/log/Statement.h"
 
 #include "qpid/management/ManagementAgent.h"
-#include "qpid/management/IdAllocator.h"
 #include "qpid/broker/Exchange.h"
 #include "qpid/broker/Message.h"
 #include "qpid/broker/Queue.h"
@@ -48,7 +47,6 @@ namespace cluster {
 
 using namespace std;
 using broker::Broker;
-using management::IdAllocator;
 using management::ManagementAgent;
 
 
@@ -77,46 +75,6 @@ struct ClusterOptions : public Options {
     }
 };
 
-struct UpdateClientIdAllocator : management::IdAllocator
-{
-    qpid::sys::AtomicValue<uint64_t> sequence;
-
-    UpdateClientIdAllocator() : sequence(0x4000000000000000LL) {}
-
-    uint64_t getIdFor(management::Manageable* m)
-    {
-        if (isUpdateQueue(m) || isUpdateExchange(m) || isUpdateSession(m) || isUpdateBinding(m)) {
-            return ++sequence;
-        } else {
-            return 0;
-        }
-    }
-
-    bool isUpdateQueue(management::Manageable* manageable)
-    {
-        qpid::broker::Queue* queue = dynamic_cast<qpid::broker::Queue*>(manageable);
-        return queue && queue->getName() == UpdateClient::UPDATE;
-    }
-
-    bool isUpdateExchange(management::Manageable* manageable)
-    {
-        qpid::broker::Exchange* exchange = dynamic_cast<qpid::broker::Exchange*>(manageable);
-        return exchange && exchange->getName() == UpdateClient::UPDATE;
-    }
-
-    bool isUpdateSession(management::Manageable* manageable)
-    {
-        broker::SessionState* session = dynamic_cast<broker::SessionState*>(manageable);
-        return session && session->getId().getName() == UpdateClient::UPDATE;
-    }
-
-    bool isUpdateBinding(management::Manageable* manageable)
-    {
-        broker::Exchange::Binding* binding = dynamic_cast<broker::Exchange::Binding*>(manageable);
-        return binding && binding->queue->getName() == UpdateClient::UPDATE;
-    }
-};
-
 struct ClusterPlugin : public Plugin {
 
     ClusterSettings settings;
@@ -139,11 +97,6 @@ struct ClusterPlugin : public Plugin {
         broker->setConnectionFactory(
             boost::shared_ptr<sys::ConnectionCodec::Factory>(
                 new ConnectionCodec::Factory(broker->getConnectionFactory(), *cluster)));
-        ManagementAgent* mgmt = broker->getManagementAgent();
-        if (mgmt) {
-            std::auto_ptr<IdAllocator> allocator(new UpdateClientIdAllocator());
-            mgmt->setAllocator(allocator);
-        }
     }
 
     void disallowManagementMethods(ManagementAgent* agent) {

Modified: qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp Fri Apr 23 21:00:10 2010
@@ -21,7 +21,6 @@
  
 #include "qpid/management/ManagementAgent.h"
 #include "qpid/management/ManagementObject.h"
-#include "qpid/management/IdAllocator.h"
 #include "qpid/broker/DeliverableMessage.h"
 #include "qpid/log/Statement.h"
 #include <qpid/broker/Message.h>
@@ -247,18 +246,13 @@ void ManagementAgent::registerEvent (con
 }
 
 // Deprecated:  V1 objects
-ObjectId ManagementAgent::addObject(ManagementObject* object, uint64_t persistId)
+ObjectId ManagementAgent::addObject(ManagementObject* object, uint64_t persistId, bool persistent)
 {
     uint16_t sequence;
     uint64_t objectNum;
 
-    if (persistId == 0) {
-        sequence  = bootSequence;
-        objectNum = nextObjectId++;
-    } else {
-        sequence  = 0;
-        objectNum = persistId;
-    }
+    sequence = persistent ? 0 : bootSequence;
+    objectNum = persistId ? persistId : nextObjectId++;
 
     ObjectId objId(0 /*flags*/, sequence, brokerBank, objectNum);
     objId.setV2Key(*object);   // let object generate the v2 key
@@ -2170,19 +2164,6 @@ ManagementObjectMap::iterator Management
     return iter;
 }
 
-void ManagementAgent::setAllocator(auto_ptr<IdAllocator> a)
-{
-    sys::Mutex::ScopedLock lock (userLock);
-    allocator = a;
-}
-
-uint64_t ManagementAgent::allocateId(Manageable* object)
-{
-    sys::Mutex::ScopedLock lock (userLock);
-    if (allocator.get()) return allocator->getIdFor(object);
-    return 0;
-}
-
 void ManagementAgent::disallow(const string& className, const string& methodName, const string& message) {
     disallowed[make_pair(className, methodName)] = message;
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h Fri Apr 23 21:00:10 2010
@@ -42,8 +42,6 @@
 namespace qpid {
 namespace management {
 
-struct IdAllocator;
-
 class ManagementAgent
 {
 private:
@@ -95,10 +93,11 @@ public:
                                              uint8_t*    md5Sum,
                                              ManagementObject::writeSchemaCall_t schemaCall);
     QPID_BROKER_EXTERN ObjectId addObject   (ManagementObject* object,
-                                             uint64_t          persistId = 0);
+                                             uint64_t          persistId = 0,
+                                             bool              persistent = false);
     QPID_BROKER_EXTERN ObjectId addObject   (ManagementObject*  object,
                                              const std::string& key,
-                                             bool               persistent = true);
+                                             bool               persistent = false);
     QPID_BROKER_EXTERN void raiseEvent(const ManagementEvent& event,
                                        severity_t severity = SEV_DEFAULT);
     QPID_BROKER_EXTERN void clientAdded     (const std::string& routingKey);
@@ -113,9 +112,6 @@ public:
 
     const framing::Uuid& getUuid() const { return uuid; }
 
-    void setAllocator(std::auto_ptr<IdAllocator> allocator);
-    uint64_t allocateId(Manageable* object);
-
     /** Disallow a method. Attempts to call it will receive an exception with message. */
     void disallow(const std::string& className, const std::string& methodName, const std::string& message);
 
@@ -280,8 +276,6 @@ private:
     const qpid::sys::AbsTime     startTime;
     bool                         suppressed;
 
-    std::auto_ptr<IdAllocator> allocator;
-
     typedef std::pair<std::string,std::string> MethodName;
     typedef std::map<MethodName, std::string> DisallowedMethods;
     DisallowedMethods disallowed;

Modified: qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py?rev=937516&r1=937515&r2=937516&view=diff
==============================================================================
--- qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py (original)
+++ qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py Fri Apr 23 21:00:10 2010
@@ -2404,22 +2404,18 @@ class Agent:
 
 
   def getBroker(self):
-    self._checkClosed()
     return self.broker
 
 
   def getBrokerBank(self):
-    self._checkClosed()
     return self.brokerBank
 
 
   def getAgentBank(self):
-    self._checkClosed()
     return self.agentBank
 
 
   def getV2RoutingKey(self):
-    self._checkClosed()
     if self.agentBank == '0':
       return 'broker'
     return self.agentBank



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org