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/07/08 23:54:21 UTC
svn commit: r674994 - in /incubator/qpid/trunk/qpid/cpp: ./ managementgen/
managementgen/templates/ src/ src/qpid/agent/ src/qpid/broker/
src/qpid/management/
Author: tross
Date: Tue Jul 8 14:54:20 2008
New Revision: 674994
URL: http://svn.apache.org/viewvc?rev=674994&view=rev
Log:
QPID-1170 - Remove boost dependency from management agent interface
Added:
incubator/qpid/trunk/qpid/cpp/src/qpid/agent/
incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgent.h
Removed:
incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h
Modified:
incubator/qpid/trunk/qpid/cpp/managementgen/generate.py
incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.cpp
incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.h
incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.cpp
incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.h
incubator/qpid/trunk/qpid/cpp/qpidc.spec.in
incubator/qpid/trunk/qpid/cpp/src/Makefile.am
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionManager.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/XmlExchange.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/management/Manageable.h
incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.h
incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h
Modified: incubator/qpid/trunk/qpid/cpp/managementgen/generate.py
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/generate.py?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/generate.py (original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/generate.py Tue Jul 8 14:54:20 2008
@@ -158,7 +158,8 @@
raise ValueError ("path is not directory: %s" % path)
if not exists:
pair = os.path.split (path)
- self.createPath (pair[0])
+ if pair[0] != '':
+ self.createPath (pair[0])
os.mkdir (path)
def normalize (self, path):
Modified: incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.cpp Tue Jul 8 14:54:20 2008
@@ -23,7 +23,7 @@
#include "qpid/log/Statement.h"
#include "qpid/framing/FieldTable.h"
#include "qpid/management/Manageable.h"
-#include "qpid/management/ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
#include "/*MGEN:Class.NameCap*/.h"
/*MGEN:Class.MethodArgIncludes*/
Modified: incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.h (original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/templates/Class.h Tue Jul 8 14:54:20 2008
@@ -79,7 +79,6 @@
public:
friend class Package/*MGEN:Class.NamePackageCap*/;
- typedef boost::shared_ptr</*MGEN:Class.NameCap*/> shared_ptr;
/*MGEN:Class.NameCap*/ (ManagementAgent* agent,
Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/);
Modified: incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.cpp Tue Jul 8 14:54:20 2008
@@ -25,7 +25,7 @@
using namespace qpid::management;
-Package/*MGEN:Schema.PackageNameCap*/::Package/*MGEN:Schema.PackageNameCap*/ (ManagementAgent::shared_ptr agent)
+Package/*MGEN:Schema.PackageNameCap*/::Package/*MGEN:Schema.PackageNameCap*/ (ManagementAgent* agent)
{
/*MGEN:Schema.ClassRegisters*/
}
Modified: incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.h (original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/templates/Package.h Tue Jul 8 14:54:20 2008
@@ -23,7 +23,7 @@
/*MGEN:Root.Disclaimer*/
-#include "qpid/management/ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
namespace qpid {
namespace management {
@@ -31,7 +31,7 @@
class Package/*MGEN:Schema.PackageNameCap*/
{
public:
- Package/*MGEN:Schema.PackageNameCap*/ (ManagementAgent::shared_ptr agent);
+ Package/*MGEN:Schema.PackageNameCap*/ (ManagementAgent* agent);
~Package/*MGEN:Schema.PackageNameCap*/ () {}
};
Modified: incubator/qpid/trunk/qpid/cpp/qpidc.spec.in
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/qpidc.spec.in?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/qpidc.spec.in (original)
+++ incubator/qpid/trunk/qpid/cpp/qpidc.spec.in Tue Jul 8 14:54:20 2008
@@ -130,6 +130,7 @@
%_includedir/qpid/sys
%_includedir/qpid/log
%_includedir/qpid/management
+%_includedir/qpid/agent
%_libdir/libqpidcommon.so
%_libdir/libqpidclient.so
%_bindir/managementgen
Modified: incubator/qpid/trunk/qpid/cpp/src/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/Makefile.am?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/src/Makefile.am Tue Jul 8 14:54:20 2008
@@ -367,6 +367,7 @@
qpid/InlineAllocator.h \
qpid/memory.h \
qpid/shared_ptr.h \
+ qpid/agent/ManagementAgent.h \
qpid/broker/Broker.h \
qpid/broker/SessionAdapter.h \
qpid/broker/Exchange.h \
@@ -523,7 +524,6 @@
qpid/log/Statement.h \
qpid/management/Args.h \
qpid/management/Manageable.h \
- qpid/management/ManagementAgent.h \
qpid/management/ManagementBroker.h \
qpid/management/ManagementExchange.h \
qpid/management/ManagementObject.h \
Added: incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgent.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgent.h?rev=674994&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgent.h (added)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgent.h Tue Jul 8 14:54:20 2008
@@ -0,0 +1,116 @@
+#ifndef _qpid_agent_ManagementAgent_
+#define _qpid_agent_ManagementAgent_
+
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+#include "qpid/management/ManagementObject.h"
+#include "qpid/management/Manageable.h"
+
+namespace qpid {
+namespace management {
+
+class ManagementAgent
+{
+ public:
+
+ ManagementAgent () {}
+ virtual ~ManagementAgent () {}
+
+ static ManagementAgent* getAgent();
+
+ virtual int getMaxThreads() = 0;
+
+ // Connect to a management broker
+ //
+ // brokerHost - Hostname or IP address (dotted-quad) of broker.
+ //
+ // brokerPort - TCP port of broker.
+ //
+ // intervalSeconds - The interval (in seconds) that this agent shall use
+ // between broadcast updates to the broker.
+ //
+ // useExternalThread - If true, the thread of control used for callbacks
+ // must be supplied by the user of the object (via the
+ // pollCallbacks method).
+ //
+ // If false, callbacks shall be invoked on the management
+ // agent's thread. In this case, the callback implementations
+ // MUST be thread safe.
+ //
+ virtual void init (std::string brokerHost = "localhost",
+ uint16_t brokerPort = 5672,
+ uint16_t intervalSeconds = 10,
+ bool useExternalThread = false) = 0;
+
+ // Register a schema with the management agent. This is normally called by the
+ // package initializer generated by the management code generator.
+ //
+ virtual void
+ RegisterClass (std::string packageName,
+ std::string className,
+ uint8_t* md5Sum,
+ management::ManagementObject::writeSchemaCall_t schemaCall) = 0;
+
+ // Add a management object to the agent. Once added, this object shall be visible
+ // in the greater management context.
+ //
+ // Please note that ManagementObject instances are not explicitly deleted from
+ // the management agent. When the core object represented by a management object
+ // is deleted, the "resourceDestroy" method on the management object must be called.
+ // It will then be reclaimed in due course by the management agent.
+ //
+ // Once a ManagementObject instance is added to the agent, the agent then owns the
+ // instance. The caller MUST NOT free the resources of the instance at any time.
+ // When it is no longer needed, invoke its "resourceDestroy" method and discard the
+ // pointer. This allows the management agent to report the deletion of the object
+ // in an orderly way.
+ //
+ virtual uint64_t addObject (ManagementObject* objectPtr,
+ uint32_t persistId = 0,
+ uint32_t persistBank = 4) = 0;
+
+ // If "useExternalThread" was set to true in init, this method must
+ // be called to provide a thread for any pending method calls that have arrived.
+ // The method calls for ManagementObject instances shall be invoked synchronously
+ // during the execution of this method.
+ //
+ // callLimit may optionally be used to limit the number of callbacks invoked.
+ // if 0, no limit is imposed.
+ //
+ // The return value is the number of callbacks that remain queued after this
+ // call is complete. It can be used to determine whether or not further calls
+ // to pollCallbacks are necessary to clear the backlog. If callLimit is zero,
+ // the return value will also be zero.
+ //
+ virtual uint32_t pollCallbacks (uint32_t callLimit = 0) = 0;
+
+ // If "useExternalThread" was set to true in the constructor, this method provides
+ // a standard file descriptor that can be used in a select statement to signal that
+ // there are method callbacks ready (i.e. that "pollCallbacks" will result in at
+ // least one method call). When this fd is ready-for-read, pollCallbacks may be
+ // invoked. Calling pollCallbacks shall reset the ready-to-read state of the fd.
+ //
+ virtual int getSignalFd (void) = 0;
+
+};
+
+}}
+
+#endif /*!_qpid_agent_ManagementAgent_*/
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.cpp Tue Jul 8 14:54:20 2008
@@ -22,7 +22,7 @@
#include "ConnectionState.h"
#include "LinkRegistry.h"
-#include "qpid/management/ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
#include "qpid/framing/FieldTable.h"
#include "qpid/framing/Uuid.h"
#include "qpid/log/Statement.h"
@@ -37,15 +37,14 @@
Bridge::Bridge(Link* _link, framing::ChannelId _id, CancellationListener l,
const management::ArgsLinkBridge& _args) :
- link(_link), id(_id), args(_args),
+ link(_link), id(_id), args(_args), mgmtObject(0),
listener(l), name(Uuid(true).str()), persistenceId(0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent();
- if (agent.get() != 0) {
- mgmtObject = management::Bridge::shared_ptr
- (new management::Bridge(agent.get(), this, link, id, args.i_durable, args.i_src, args.i_dest,
- args.i_key, args.i_srcIsQueue, args.i_srcIsLocal,
- args.i_tag, args.i_excludes));
+ ManagementAgent* agent = ManagementAgent::getAgent();
+ if (agent != 0) {
+ mgmtObject = new management::Bridge(agent, this, link, id, args.i_durable, args.i_src, args.i_dest,
+ args.i_key, args.i_srcIsQueue, args.i_srcIsLocal,
+ args.i_tag, args.i_excludes);
if (!args.i_durable)
agent->addObject(mgmtObject);
}
@@ -109,7 +108,7 @@
{
if (mgmtObject != 0 && persistenceId == 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::getAgent ();
agent->addObject (mgmtObject, id);
}
persistenceId = id;
@@ -175,9 +174,9 @@
+ args.i_excludes.size() + 1;
}
-management::ManagementObject::shared_ptr Bridge::GetManagementObject (void) const
+management::ManagementObject* Bridge::GetManagementObject (void) const
{
- return dynamic_pointer_cast<management::ManagementObject>(mgmtObject);
+ return (management::ManagementObject*) mgmtObject;
}
management::Manageable::status_t Bridge::ManagementMethod(uint32_t methodId, management::Args& /*args*/)
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Bridge.h Tue Jul 8 14:54:20 2008
@@ -53,7 +53,7 @@
void destroy();
bool isDurable() { return args.i_durable; }
- management::ManagementObject::shared_ptr GetManagementObject() const;
+ management::ManagementObject* GetManagementObject() const;
management::Manageable::status_t ManagementMethod(uint32_t methodId, management::Args& args);
// PersistableConfig:
@@ -70,10 +70,10 @@
std::auto_ptr<framing::AMQP_ServerProxy> peer;
Link* link;
- framing::ChannelId id;
- management::ArgsLinkBridge args;
- management::Bridge::shared_ptr mgmtObject;
- CancellationListener listener;
+ framing::ChannelId id;
+ management::ArgsLinkBridge args;
+ management::Bridge* mgmtObject;
+ CancellationListener listener;
std::string name;
mutable uint64_t persistenceId;
};
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Tue Jul 8 14:54:20 2008
@@ -137,13 +137,13 @@
ManagementBroker::enableManagement (dataDir.isEnabled () ? dataDir.getPath () : string (),
conf.mgmtPubInterval, this, conf.workerThreads + 3);
managementAgent = management::ManagementAgent::getAgent ();
- ((ManagementBroker*) managementAgent.get())->setInterval (conf.mgmtPubInterval);
+ ((ManagementBroker*) managementAgent)->setInterval (conf.mgmtPubInterval);
qpid::management::PackageQpid packageInitializer (managementAgent);
System* system = new System (dataDir.isEnabled () ? dataDir.getPath () : string ());
systemObject = System::shared_ptr (system);
- mgmtObject = management::Broker::shared_ptr (new management::Broker (managementAgent.get(), this, system, conf.port));
+ mgmtObject = new management::Broker (managementAgent, this, system, conf.port);
mgmtObject->set_workerThreads (conf.workerThreads);
mgmtObject->set_maxConns (conf.maxConnections);
mgmtObject->set_connBacklog (conf.connectionBacklog);
@@ -199,9 +199,9 @@
exchanges.declare(qpid_management, ManagementExchange::typeName);
Exchange::shared_ptr mExchange = exchanges.get (qpid_management);
Exchange::shared_ptr dExchange = exchanges.get (amq_direct);
- ((ManagementBroker*) managementAgent.get())->setExchange (mExchange, dExchange);
+ ((ManagementBroker*) managementAgent)->setExchange (mExchange, dExchange);
dynamic_pointer_cast<ManagementExchange>(mExchange)->setManagmentAgent
- ((ManagementBroker*) managementAgent.get());
+ ((ManagementBroker*) managementAgent);
}
else
QPID_LOG(info, "Management not enabled");
@@ -298,9 +298,9 @@
QPID_LOG(notice, "Shut down");
}
-ManagementObject::shared_ptr Broker::GetManagementObject(void) const
+ManagementObject* Broker::GetManagementObject(void) const
{
- return dynamic_pointer_cast<ManagementObject> (mgmtObject);
+ return (ManagementObject*) mgmtObject;
}
Manageable* Broker::GetVhostObject(void) const
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h Tue Jul 8 14:54:20 2008
@@ -123,10 +123,9 @@
SessionManager& getSessionManager() { return sessionManager; }
ConnectionManager& getConnectionManager() { return connectionManager; }
- management::ManagementObject::shared_ptr GetManagementObject (void) const;
- management::Manageable* GetVhostObject (void) const;
- management::Manageable::status_t
- ManagementMethod (uint32_t methodId, management::Args& args);
+ management::ManagementObject* GetManagementObject (void) const;
+ management::Manageable* GetVhostObject (void) const;
+ management::Manageable::status_t ManagementMethod (uint32_t methodId, management::Args& args);
/** Add to the broker's protocolFactorys */
void registerProtocolFactory(boost::shared_ptr<sys::ProtocolFactory>);
@@ -161,10 +160,10 @@
DtxManager dtxManager;
SessionManager sessionManager;
ConnectionManager connectionManager;
- management::ManagementAgent::shared_ptr managementAgent;
- management::Broker::shared_ptr mgmtObject;
- Vhost::shared_ptr vhostObject;
- System::shared_ptr systemObject;
+ management::ManagementAgent* managementAgent;
+ management::Broker* mgmtObject;
+ Vhost::shared_ptr vhostObject;
+ System::shared_ptr systemObject;
void declareStandardExchange(const std::string& name, const std::string& type);
};
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.cpp Tue Jul 8 14:54:20 2008
@@ -25,7 +25,7 @@
#include "qpid/log/Statement.h"
#include "qpid/ptr_map.h"
#include "qpid/framing/AMQP_ClientProxy.h"
-#include "qpid/management/ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
#include <boost/bind.hpp>
#include <boost/ptr_container/ptr_vector.hpp>
@@ -53,6 +53,7 @@
isLink(isLink_),
mgmtClosing(false),
mgmtId(mgmtId_),
+ mgmtObject(0),
links(broker_.getLinks()),
lastInHandler(*this),
inChain(lastInHandler)
@@ -64,11 +65,10 @@
if (parent != 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent();
+ ManagementAgent* agent = ManagementAgent::getAgent();
- if (agent.get() != 0)
- mgmtObject = management::Connection::shared_ptr
- (new management::Connection(agent.get(), this, parent, mgmtId, !isLink));
+ if (agent != 0)
+ mgmtObject = new management::Connection(agent, this, parent, mgmtId, !isLink);
agent->addObject(mgmtObject);
}
}
@@ -82,7 +82,7 @@
Connection::~Connection()
{
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->resourceDestroy();
if (isLink)
links.notifyClosed(mgmtId);
@@ -105,7 +105,7 @@
void Connection::recordFromServer(framing::AMQFrame& frame)
{
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
{
mgmtObject->inc_framesToClient();
mgmtObject->inc_bytesToClient(frame.size());
@@ -114,7 +114,7 @@
void Connection::recordFromClient(framing::AMQFrame& frame)
{
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
{
mgmtObject->inc_framesFromClient();
mgmtObject->inc_bytesFromClient(frame.size());
@@ -134,7 +134,7 @@
if (!isLink)
return string();
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
{
if (links.getAuthMechanism(mgmtId) == "ANONYMOUS")
mgmtObject->set_authIdentity("anonymous");
@@ -154,7 +154,7 @@
void Connection::setUserId(const string& userId)
{
ConnectionState::setUserId(userId);
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->set_authIdentity(userId);
}
@@ -222,9 +222,9 @@
return *ptr_map_ptr(i);
}
-ManagementObject::shared_ptr Connection::GetManagementObject(void) const
+ManagementObject* Connection::GetManagementObject(void) const
{
- return dynamic_pointer_cast<ManagementObject>(mgmtObject);
+ return (ManagementObject*) mgmtObject;
}
Manageable::status_t Connection::ManagementMethod(uint32_t methodId, Args&)
@@ -237,7 +237,7 @@
{
case management::Connection::METHOD_CLOSE :
mgmtClosing = true;
- if (mgmtObject.get()) mgmtObject->set_closing(1);
+ if (mgmtObject != 0) mgmtObject->set_closing(1);
out->activateOutput();
status = Manageable::STATUS_OK;
break;
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Connection.h Tue Jul 8 14:54:20 2008
@@ -79,7 +79,7 @@
void closeChannel(framing::ChannelId channel);
// Manageable entry points
- management::ManagementObject::shared_ptr GetManagementObject (void) const;
+ management::ManagementObject* GetManagementObject (void) const;
management::Manageable::status_t
ManagementMethod (uint32_t methodId, management::Args& args);
@@ -107,7 +107,7 @@
bool mgmtClosing;
const std::string mgmtId;
boost::function0<void> ioCallback;
- management::Connection::shared_ptr mgmtObject;
+ management::Connection* mgmtObject;
LinkRegistry& links;
framing::FrameHandler::MemFunRef<Connection, &Connection::receivedLast> lastInHandler;
framing::FrameHandler::Chain inChain;
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp Tue Jul 8 14:54:20 2008
@@ -29,7 +29,7 @@
DirectExchange::DirectExchange(const string& _name, Manageable* _parent) : Exchange(_name, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -37,7 +37,7 @@
const FieldTable& _args, Manageable* _parent) :
Exchange(_name, _durable, _args, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -53,9 +53,9 @@
if (i == queues.end()) {
Binding::shared_ptr binding (new Binding (routingKey, queue, this));
bindings[routingKey].push_back(binding);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_bindingCount();
- dynamic_pointer_cast<management::Queue>(queue->GetManagementObject())->inc_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->inc_bindingCount();
}
return true;
} else{
@@ -77,9 +77,9 @@
if (queues.empty()) {
bindings.erase(routingKey);
}
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->dec_bindingCount();
- dynamic_pointer_cast<management::Queue>(queue->GetManagementObject())->dec_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->dec_bindingCount();
}
return true;
} else {
@@ -95,25 +95,25 @@
for(i = queues.begin(); i != queues.end(); i++, count++) {
msg.deliverTo((*i)->queue);
- if ((*i)->mgmtBinding.get() != 0)
+ if ((*i)->mgmtBinding != 0)
(*i)->mgmtBinding->inc_msgMatched ();
}
if(!count){
QPID_LOG(warning, "DirectExchange " << getName() << " could not route message with key " << routingKey);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_msgDrops ();
mgmtExchange->inc_byteDrops (msg.contentSize ());
}
}
else {
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_msgRoutes (count);
mgmtExchange->inc_byteRoutes (count * msg.contentSize ());
}
}
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_msgReceives ();
mgmtExchange->inc_byteReceives (msg.contentSize ());
}
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.cpp Tue Jul 8 14:54:20 2008
@@ -21,7 +21,7 @@
#include "Exchange.h"
#include "ExchangeRegistry.h"
-#include "qpid/management/ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
using namespace qpid::broker;
using qpid::framing::Buffer;
@@ -32,15 +32,14 @@
using qpid::management::Args;
Exchange::Exchange (const string& _name, Manageable* parent) :
- name(_name), durable(false), persistenceId(0)
+ name(_name), durable(false), persistenceId(0), mgmtExchange(0)
{
if (parent != 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
- if (agent.get () != 0)
+ ManagementAgent* agent = ManagementAgent::getAgent ();
+ if (agent != 0)
{
- mgmtExchange = management::Exchange::shared_ptr
- (new management::Exchange (agent.get(), this, parent, _name, durable));
+ mgmtExchange = new management::Exchange (agent, this, parent, _name, durable);
agent->addObject (mgmtExchange);
}
}
@@ -48,15 +47,14 @@
Exchange::Exchange(const string& _name, bool _durable, const qpid::framing::FieldTable& _args,
Manageable* parent)
- : name(_name), durable(_durable), args(_args), alternateUsers(0), persistenceId(0)
+ : name(_name), durable(_durable), args(_args), alternateUsers(0), persistenceId(0), mgmtExchange(0)
{
if (parent != 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
- if (agent.get () != 0)
+ ManagementAgent* agent = ManagementAgent::getAgent ();
+ if (agent != 0)
{
- mgmtExchange = management::Exchange::shared_ptr
- (new management::Exchange (agent.get(), this, parent, _name, durable));
+ mgmtExchange = new management::Exchange (agent, this, parent, _name, durable);
if (!durable) {
if (name == "")
agent->addObject (mgmtExchange, 4, 1); // Special default exchange ID
@@ -71,7 +69,7 @@
Exchange::~Exchange ()
{
- if (mgmtExchange.get () != 0)
+ if (mgmtExchange != 0)
mgmtExchange->resourceDestroy ();
}
@@ -79,7 +77,7 @@
{
if (mgmtExchange != 0 && persistenceId == 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::getAgent ();
agent->addObject (mgmtExchange, id, 2);
}
persistenceId = id;
@@ -115,26 +113,25 @@
+ args.size();
}
-ManagementObject::shared_ptr Exchange::GetManagementObject (void) const
+ManagementObject* Exchange::GetManagementObject (void) const
{
- return dynamic_pointer_cast<ManagementObject> (mgmtExchange);
+ return (ManagementObject*) mgmtExchange;
}
Exchange::Binding::Binding(const string& _key, Queue::shared_ptr _queue, Exchange* parent,
FieldTable _args)
- : queue(_queue), key(_key), args(_args)
+ : queue(_queue), key(_key), args(_args), mgmtBinding(0)
{
if (parent != 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
- if (agent.get() != 0)
+ ManagementAgent* agent = ManagementAgent::getAgent ();
+ if (agent != 0)
{
- ManagementObject::shared_ptr mo = queue->GetManagementObject();
- if (mo.get() != 0)
+ ManagementObject* mo = queue->GetManagementObject();
+ if (mo != 0)
{
uint64_t queueId = mo->getObjectId();
- mgmtBinding = management::Binding::shared_ptr
- (new management::Binding (agent.get(), this, (Manageable*) parent, queueId, key, args));
+ mgmtBinding = new management::Binding (agent, this, (Manageable*) parent, queueId, key, args);
agent->addObject (mgmtBinding);
}
}
@@ -143,13 +140,13 @@
Exchange::Binding::~Binding ()
{
- if (mgmtBinding.get () != 0)
+ if (mgmtBinding != 0)
mgmtBinding->resourceDestroy ();
}
-ManagementObject::shared_ptr Exchange::Binding::GetManagementObject () const
+ManagementObject* Exchange::Binding::GetManagementObject () const
{
- return dynamic_pointer_cast<ManagementObject> (mgmtBinding);
+ return (ManagementObject*) mgmtBinding;
}
Manageable::status_t Exchange::Binding::ManagementMethod (uint32_t, Args&)
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Exchange.h Tue Jul 8 14:54:20 2008
@@ -54,16 +54,16 @@
Queue::shared_ptr queue;
const std::string key;
const framing::FieldTable args;
- management::Binding::shared_ptr mgmtBinding;
+ management::Binding* mgmtBinding;
Binding(const std::string& key, Queue::shared_ptr queue, Exchange* parent = 0,
framing::FieldTable args = framing::FieldTable ());
~Binding ();
- management::ManagementObject::shared_ptr GetManagementObject () const;
+ management::ManagementObject* GetManagementObject () const;
management::Manageable::status_t ManagementMethod (uint32_t methodId, management::Args& args);
};
- management::Exchange::shared_ptr mgmtExchange;
+ management::Exchange* mgmtExchange;
public:
typedef boost::shared_ptr<Exchange> shared_ptr;
@@ -98,7 +98,7 @@
static Exchange::shared_ptr decode(ExchangeRegistry& exchanges, framing::Buffer& buffer);
// Manageable entry points
- management::ManagementObject::shared_ptr GetManagementObject (void) const;
+ management::ManagementObject* GetManagementObject (void) const;
management::Manageable::status_t
ManagementMethod (uint32_t, management::Args&) { return management::Manageable::STATUS_UNKNOWN_METHOD; }
};
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp Tue Jul 8 14:54:20 2008
@@ -28,7 +28,7 @@
FanOutExchange::FanOutExchange(const std::string& _name, Manageable* _parent) :
Exchange(_name, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -36,7 +36,7 @@
const FieldTable& _args, Manageable* _parent) :
Exchange(_name, _durable, _args, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -52,9 +52,9 @@
if (i == bindings.end()) {
Binding::shared_ptr binding (new Binding ("", queue, this));
bindings.push_back(binding);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_bindingCount();
- dynamic_pointer_cast<management::Queue>(queue->GetManagementObject())->inc_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->inc_bindingCount();
}
return true;
} else {
@@ -72,9 +72,9 @@
if (i != bindings.end()) {
bindings.erase(i);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->dec_bindingCount();
- dynamic_pointer_cast<management::Queue>(queue->GetManagementObject())->dec_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->dec_bindingCount();
}
return true;
} else {
@@ -88,11 +88,11 @@
for(std::vector<Binding::shared_ptr>::iterator i = bindings.begin(); i != bindings.end(); ++i, count++){
msg.deliverTo((*i)->queue);
- if ((*i)->mgmtBinding.get() != 0)
+ if ((*i)->mgmtBinding != 0)
(*i)->mgmtBinding->inc_msgMatched ();
}
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
{
mgmtExchange->inc_msgReceives ();
mgmtExchange->inc_byteReceives (msg.contentSize ());
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp Tue Jul 8 14:54:20 2008
@@ -45,7 +45,7 @@
HeadersExchange::HeadersExchange(const string& _name, Manageable* _parent) :
Exchange(_name, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -53,7 +53,7 @@
const FieldTable& _args, Manageable* _parent) :
Exchange(_name, _durable, _args, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -89,9 +89,9 @@
HeaderMap headerMap(*args, binding);
bindings.push_back(headerMap);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_bindingCount();
- dynamic_pointer_cast<management::Queue>(queue->GetManagementObject())->inc_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->inc_bindingCount();
}
return true;
} else {
@@ -114,9 +114,9 @@
if (i != bindings.end()) {
bindings.erase(i);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->dec_bindingCount();
- dynamic_pointer_cast<management::Queue>(queue->GetManagementObject())->dec_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->dec_bindingCount();
}
return true;
} else {
@@ -133,11 +133,11 @@
for (Bindings::iterator i = bindings.begin(); i != bindings.end(); ++i, count++) {
if (match(i->first, *args)) msg.deliverTo(i->second->queue);
- if (i->second->mgmtBinding.get() != 0)
+ if (i->second->mgmtBinding != 0)
i->second->mgmtBinding->inc_msgMatched ();
}
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
{
mgmtExchange->inc_msgReceives ();
mgmtExchange->inc_byteReceives (msg.contentSize ());
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.cpp Tue Jul 8 14:54:20 2008
@@ -23,7 +23,7 @@
#include "LinkRegistry.h"
#include "Broker.h"
#include "Connection.h"
-#include "qpid/management/ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
#include "qpid/management/Link.h"
#include "boost/bind.hpp"
#include "qpid/log/Statement.h"
@@ -50,7 +50,7 @@
management::Manageable* parent)
: links(_links), store(_store), host(_host), port(_port), useSsl(_useSsl), durable(_durable),
authMechanism(_authMechanism), username(_username), password(_password),
- persistenceId(0), broker(_broker), state(0),
+ persistenceId(0), mgmtObject(0), broker(_broker), state(0),
visitCount(0),
currentInterval(1),
closing(false),
@@ -59,11 +59,10 @@
{
if (parent != 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent();
- if (agent.get() != 0)
+ ManagementAgent* agent = ManagementAgent::getAgent();
+ if (agent != 0)
{
- mgmtObject = management::Link::shared_ptr
- (new management::Link(agent.get(), this, parent, _host, _port, _useSsl, _durable));
+ mgmtObject = new management::Link(agent, this, parent, _host, _port, _useSsl, _durable);
if (!durable)
agent->addObject(mgmtObject);
}
@@ -76,7 +75,7 @@
if (state == STATE_OPERATIONAL && connection != 0)
connection->close();
- if (mgmtObject.get () != 0)
+ if (mgmtObject != 0)
mgmtObject->resourceDestroy ();
}
@@ -86,7 +85,7 @@
return;
state = newState;
- if (mgmtObject.get() == 0)
+ if (mgmtObject == 0)
return;
switch (state)
@@ -109,7 +108,7 @@
boost::bind (&Link::closed, this, _1, _2));
} catch(std::exception& e) {
setStateLH(STATE_WAITING);
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->set_lastError (e.what());
}
}
@@ -142,7 +141,7 @@
if (state != STATE_FAILED)
{
setStateLH(STATE_WAITING);
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->set_lastError (text);
}
@@ -259,7 +258,7 @@
Mutex::ScopedLock mutex(lock);
setStateLH(STATE_FAILED);
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->set_lastError(text);
}
@@ -267,7 +266,7 @@
{
if (mgmtObject != 0 && persistenceId == 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::getAgent ();
agent->addObject (mgmtObject, id);
}
persistenceId = id;
@@ -321,9 +320,9 @@
+ password.size() + 1;
}
-ManagementObject::shared_ptr Link::GetManagementObject (void) const
+ManagementObject* Link::GetManagementObject (void) const
{
- return boost::dynamic_pointer_cast<ManagementObject> (mgmtObject);
+ return (ManagementObject*) mgmtObject;
}
Manageable::status_t Link::ManagementMethod (uint32_t op, management::Args& args)
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Link.h Tue Jul 8 14:54:20 2008
@@ -53,7 +53,7 @@
string username;
string password;
mutable uint64_t persistenceId;
- management::Link::shared_ptr mgmtObject;
+ management::Link* mgmtObject;
Broker* broker;
int state;
uint32_t visitCount;
@@ -123,7 +123,7 @@
static Link::shared_ptr decode(LinkRegistry& links, framing::Buffer& buffer);
// Manageable entry points
- management::ManagementObject::shared_ptr GetManagementObject (void) const;
+ management::ManagementObject* GetManagementObject (void) const;
management::Manageable::status_t ManagementMethod (uint32_t, management::Args&);
};
}
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.cpp Tue Jul 8 14:54:20 2008
@@ -62,16 +62,16 @@
exclusive(0),
noLocal(false),
persistenceId(0),
- policyExceeded(false)
+ policyExceeded(false),
+ mgmtObject(0)
{
if (parent != 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::getAgent ();
- if (agent.get () != 0)
+ if (agent != 0)
{
- mgmtObject = management::Queue::shared_ptr
- (new management::Queue (agent.get(), this, parent, _name, _store != 0, _autodelete, _owner != 0));
+ mgmtObject = new management::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.
@@ -83,7 +83,7 @@
Queue::~Queue()
{
- if (mgmtObject.get () != 0)
+ if (mgmtObject != 0)
mgmtObject->resourceDestroy ();
}
@@ -128,14 +128,14 @@
} else {
// if no store then mark as enqueued
if (!enqueue(0, msg)){
- if (mgmtObject.get() != 0) {
+ if (mgmtObject != 0) {
mgmtObject->inc_msgTotalEnqueues ();
mgmtObject->inc_byteTotalEnqueues (msg->contentSize ());
}
push(msg);
msg->enqueueComplete();
}else {
- if (mgmtObject.get() != 0) {
+ if (mgmtObject != 0) {
mgmtObject->inc_msgTotalEnqueues ();
mgmtObject->inc_byteTotalEnqueues (msg->contentSize ());
mgmtObject->inc_msgPersistEnqueues ();
@@ -151,7 +151,7 @@
void Queue::recover(boost::intrusive_ptr<Message>& msg){
push(msg);
msg->enqueueComplete(); // mark the message as enqueued
- if (mgmtObject.get() != 0) {
+ if (mgmtObject != 0) {
mgmtObject->inc_msgTotalEnqueues ();
mgmtObject->inc_byteTotalEnqueues (msg->contentSize ());
mgmtObject->inc_msgPersistEnqueues ();
@@ -167,7 +167,7 @@
void Queue::process(boost::intrusive_ptr<Message>& msg){
push(msg);
- if (mgmtObject.get() != 0) {
+ if (mgmtObject != 0) {
mgmtObject->inc_msgTotalEnqueues ();
mgmtObject->inc_byteTotalEnqueues (msg->contentSize ());
mgmtObject->inc_msgTxnEnqueues ();
@@ -348,7 +348,7 @@
}
consumerCount++;
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->inc_consumerCount ();
}
@@ -357,7 +357,7 @@
Mutex::ScopedLock locker(consumerLock);
consumerCount--;
if(exclusive) exclusive = 0;
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->dec_consumerCount ();
}
@@ -394,7 +394,7 @@
QueuedMessage& msg = messages.front();
if (policy.get()) policy->dequeued(msg.payload->contentSize());
- if (mgmtObject.get() != 0){
+ if (mgmtObject != 0){
mgmtObject->inc_msgTotalDequeues ();
mgmtObject->inc_byteTotalDequeues (msg.payload->contentSize());
if (msg.payload->isPersistent ()){
@@ -522,7 +522,7 @@
QPID_LOG(debug, "Configured queue " << getName() << " with qpid.trace.id='" << traceId
<< "' and qpid.trace.exclude='"<< excludeList << "' i.e. " << traceExclude.size() << " elements");
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->set_arguments (_settings);
}
@@ -574,14 +574,14 @@
void Queue::setPersistenceId(uint64_t _persistenceId) const
{
- if (mgmtObject.get() != 0 && persistenceId == 0)
+ if (mgmtObject != 0 && persistenceId == 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::getAgent ();
agent->addObject (mgmtObject, _persistenceId, 3);
if (externalQueueStore) {
- ManagementObject::shared_ptr childObj = externalQueueStore->GetManagementObject();
- if (childObj.get() != 0)
+ ManagementObject* childObj = externalQueueStore->GetManagementObject();
+ if (childObj != 0)
childObj->setReference(mgmtObject->getObjectId());
}
}
@@ -669,8 +669,8 @@
externalQueueStore = inst;
if (inst) {
- ManagementObject::shared_ptr childObj = inst->GetManagementObject();
- if (childObj.get() != 0 && mgmtObject.get() != 0)
+ ManagementObject* childObj = inst->GetManagementObject();
+ if (childObj != 0 && mgmtObject != 0)
childObj->setReference(mgmtObject->getObjectId());
}
}
@@ -696,9 +696,9 @@
while (count) condition.wait(m);
}
-ManagementObject::shared_ptr Queue::GetManagementObject (void) const
+ManagementObject* Queue::GetManagementObject (void) const
{
- return dynamic_pointer_cast<ManagementObject> (mgmtObject);
+ return (ManagementObject*) mgmtObject;
}
Manageable::status_t Queue::ManagementMethod (uint32_t methodId,
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Queue.h Tue Jul 8 14:54:20 2008
@@ -96,7 +96,7 @@
QueueBindings bindings;
boost::shared_ptr<Exchange> alternateExchange;
framing::SequenceNumber sequence;
- management::Queue::shared_ptr mgmtObject;
+ management::Queue* mgmtObject;
void pop();
void push(boost::intrusive_ptr<Message>& msg);
@@ -201,7 +201,7 @@
virtual void setExternalQueueStore(ExternalQueueStore* inst);
// Manageable entry points
- management::ManagementObject::shared_ptr GetManagementObject (void) const;
+ management::ManagementObject* GetManagementObject (void) const;
management::Manageable::status_t
ManagementMethod (uint32_t methodId, management::Args& args);
};
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionManager.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionManager.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionManager.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionManager.cpp Tue Jul 8 14:54:20 2008
@@ -74,7 +74,7 @@
session->detach();
if (session->getTimeout() > 0) {
session->expiry = AbsTime(now(),session->getTimeout()*TIME_SEC);
- if (session->mgmtObject.get() != 0)
+ if (session->mgmtObject != 0)
session->mgmtObject->set_expireTime ((uint64_t) Duration (session->expiry));
detached.push_back(session.release()); // In expiry order
eraseExpired();
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp Tue Jul 8 14:54:20 2008
@@ -54,6 +54,7 @@
adapter(semanticState),
msgBuilder(&broker.getStore(), broker.getStagingThreshold()),
enqueuedOp(boost::bind(&SessionState::enqueued, this, _1)),
+ mgmtObject(0),
inLastHandler(*this),
outLastHandler(*this),
inChain(inLastHandler),
@@ -61,10 +62,9 @@
{
Manageable* parent = broker.GetVhostObject ();
if (parent != 0) {
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
- if (agent.get () != 0) {
- mgmtObject = management::Session::shared_ptr
- (new management::Session (agent.get(), this, parent, getId().getName()));
+ ManagementAgent* agent = ManagementAgent::getAgent ();
+ if (agent != 0) {
+ mgmtObject = new management::Session (agent, this, parent, getId().getName());
mgmtObject->set_attached (0);
mgmtObject->set_detachedLifespan (0);
agent->addObject (mgmtObject);
@@ -79,7 +79,7 @@
// they don't belong in the manager. For now rely on uniqueness of UUIDs.
//
broker.getSessionManager().forget(getId());
- if (mgmtObject.get () != 0)
+ if (mgmtObject != 0)
mgmtObject->resourceDestroy ();
}
@@ -104,7 +104,7 @@
QPID_LOG(debug, getId() << ": detached on broker.");
getConnection().outputTasks.removeOutputTask(&semanticState);
handler = 0;
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
mgmtObject->set_attached (0);
}
@@ -113,7 +113,7 @@
Mutex::ScopedLock l(lock);
QPID_LOG(debug, getId() << ": attached on broker.");
handler = &h;
- if (mgmtObject.get() != 0)
+ if (mgmtObject != 0)
{
mgmtObject->set_attached (1);
mgmtObject->set_connectionRef (h.getConnection().GetManagementObject()->getObjectId());
@@ -129,9 +129,9 @@
// FIXME aconway 2008-05-22: should we hold the lock over activateOutput??
}
-ManagementObject::shared_ptr SessionState::GetManagementObject (void) const
+ManagementObject* SessionState::GetManagementObject (void) const
{
- return dynamic_pointer_cast<ManagementObject> (mgmtObject);
+ return (ManagementObject*) mgmtObject;
}
Manageable::status_t SessionState::ManagementMethod (uint32_t methodId,
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h Tue Jul 8 14:54:20 2008
@@ -95,7 +95,7 @@
DeliveryId deliver(QueuedMessage& msg, DeliveryToken::shared_ptr token);
// Manageable entry points
- management::ManagementObject::shared_ptr GetManagementObject (void) const;
+ management::ManagementObject* GetManagementObject (void) const;
management::Manageable::status_t
ManagementMethod (uint32_t methodId, management::Args& args);
@@ -128,7 +128,7 @@
MessageBuilder msgBuilder;
IncompleteMessageList incomplete;
IncompleteMessageList::CompletionListener enqueuedOp;
- management::Session::shared_ptr mgmtObject;
+ management::Session* mgmtObject;
framing::FrameHandler::MemFunRef<SessionState, &SessionState::handleInLast> inLastHandler;
framing::FrameHandler::MemFunRef<SessionState, &SessionState::handleOutLast> outLastHandler;
framing::FrameHandler::Chain inChain, outChain;
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.cpp Tue Jul 8 14:54:20 2008
@@ -18,7 +18,7 @@
//
#include "System.h"
-#include "qpid/management/ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
#include "qpid/framing/Uuid.h"
#include <sys/utsname.h>
#include <iostream>
@@ -28,11 +28,11 @@
using namespace qpid::broker;
using namespace std;
-System::System (string _dataDir)
+System::System (string _dataDir) : mgmtObject(0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::getAgent ();
- if (agent.get () != 0)
+ if (agent != 0)
{
framing::Uuid systemId;
@@ -62,8 +62,7 @@
}
}
- mgmtObject = management::System::shared_ptr
- (new management::System (agent.get(), this, systemId));
+ mgmtObject = new management::System (agent, this, systemId);
struct utsname _uname;
if (uname (&_uname) == 0)
{
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/System.h Tue Jul 8 14:54:20 2008
@@ -32,7 +32,7 @@
{
private:
- management::System::shared_ptr mgmtObject;
+ management::System* mgmtObject;
public:
@@ -40,7 +40,7 @@
System (std::string _dataDir);
- management::ManagementObject::shared_ptr GetManagementObject (void) const
+ management::ManagementObject* GetManagementObject (void) const
{ return mgmtObject; }
};
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp Tue Jul 8 14:54:20 2008
@@ -117,7 +117,7 @@
TopicExchange::TopicExchange(const string& _name, Manageable* _parent) : Exchange(_name, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -125,7 +125,7 @@
const FieldTable& _args, Manageable* _parent) :
Exchange(_name, _durable, _args, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -137,9 +137,9 @@
} else {
Binding::shared_ptr binding (new Binding (routingKey, queue, this));
bindings[routingPattern].push_back(binding);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_bindingCount();
- dynamic_pointer_cast<management::Queue>(queue->GetManagementObject())->inc_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->inc_bindingCount();
}
return true;
}
@@ -158,9 +158,9 @@
if(q == qv.end()) return false;
qv.erase(q);
if(qv.empty()) bindings.erase(bi);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->dec_bindingCount();
- dynamic_pointer_cast<management::Queue>(queue->GetManagementObject())->dec_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->dec_bindingCount();
}
return true;
}
@@ -187,13 +187,13 @@
Binding::vector& qv(i->second);
for(Binding::vector::iterator j = qv.begin(); j != qv.end(); j++, count++){
msg.deliverTo((*j)->queue);
- if ((*j)->mgmtBinding.get() != 0)
+ if ((*j)->mgmtBinding != 0)
(*j)->mgmtBinding->inc_msgMatched ();
}
}
}
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
{
mgmtExchange->inc_msgReceives ();
mgmtExchange->inc_byteReceives (msg.contentSize ());
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.cpp Tue Jul 8 14:54:20 2008
@@ -18,21 +18,20 @@
//
#include "Vhost.h"
-#include "qpid/management/ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
using namespace qpid::broker;
using qpid::management::ManagementAgent;
-Vhost::Vhost (management::Manageable* parentBroker)
+Vhost::Vhost (management::Manageable* parentBroker) : mgmtObject(0)
{
if (parentBroker != 0)
{
- ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::getAgent ();
- if (agent.get () != 0)
+ if (agent != 0)
{
- mgmtObject = management::Vhost::shared_ptr
- (new management::Vhost (agent.get(), this, parentBroker, "/"));
+ mgmtObject = new management::Vhost (agent, this, parentBroker, "/");
agent->addObject (mgmtObject, 3, 1);
}
}
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Vhost.h Tue Jul 8 14:54:20 2008
@@ -31,7 +31,7 @@
{
private:
- management::Vhost::shared_ptr mgmtObject;
+ management::Vhost* mgmtObject;
public:
@@ -39,7 +39,7 @@
Vhost (management::Manageable* parentBroker);
- management::ManagementObject::shared_ptr GetManagementObject (void) const
+ management::ManagementObject* GetManagementObject (void) const
{ return mgmtObject; }
management::Manageable::status_t ManagementMethod (uint32_t, management::Args&)
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/XmlExchange.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/XmlExchange.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/XmlExchange.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/XmlExchange.cpp Tue Jul 8 14:54:20 2008
@@ -46,7 +46,7 @@
XmlExchange::XmlExchange(const string& _name, Manageable* _parent) : Exchange(_name, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -54,7 +54,7 @@
const FieldTable& _args, Manageable* _parent) :
Exchange(_name, _durable, _args, _parent)
{
- if (mgmtExchange.get() != 0)
+ if (mgmtExchange != 0)
mgmtExchange->set_type (typeName);
}
@@ -96,8 +96,9 @@
bindingsMap[routingKey] = bindings;
QPID_LOG(trace, "Bound successfully with query: " << queryText );
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->inc_bindingCount();
}
return true;
} else{
@@ -127,8 +128,9 @@
if (bindings.empty()) {
bindingsMap.erase(routingKey);
}
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->dec_bindingCount();
+ ((management::Queue*) queue->GetManagementObject())->dec_bindingCount();
}
return true;
} else {
@@ -203,25 +205,25 @@
count++;
QPID_LOG(trace, "Delivered to queue" );
- if ((*i)->mgmtBinding.get() != 0)
+ if ((*i)->mgmtBinding != 0)
(*i)->mgmtBinding->inc_msgMatched ();
}
if(!count){
QPID_LOG(warning, "XMLExchange " << getName() << ": could not route message with query " << routingKey);
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_msgDrops ();
mgmtExchange->inc_byteDrops (msg.contentSize ());
}
}
else {
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_msgRoutes (count);
mgmtExchange->inc_byteRoutes (count * msg.contentSize ());
}
}
- if (mgmtExchange.get() != 0) {
+ if (mgmtExchange != 0) {
mgmtExchange->inc_msgReceives ();
mgmtExchange->inc_byteReceives (msg.contentSize ());
}
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/Manageable.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/Manageable.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/Manageable.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/Manageable.h Tue Jul 8 14:54:20 2008
@@ -23,7 +23,6 @@
#include "ManagementObject.h"
#include "Args.h"
#include <string>
-#include <boost/shared_ptr.hpp>
namespace qpid {
namespace management {
@@ -50,9 +49,9 @@
// management object. This object is always of a class derived from
// the pure-virtual "ManagementObject".
//
- // This accessor function returns a shared_ptr to the management object.
+ // This accessor function returns a pointer to the management object.
//
- virtual ManagementObject::shared_ptr GetManagementObject (void) const = 0;
+ virtual ManagementObject* GetManagementObject (void) const = 0;
// Every "Manageable" object must implement ManagementMethod. This
// function is called when a remote management client invokes a method
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=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp Tue Jul 8 14:54:20 2008
@@ -38,12 +38,12 @@
using namespace qpid::sys;
using namespace std;
-ManagementAgent::shared_ptr ManagementBroker::agent;
-bool ManagementBroker::enabled = 0;
+ManagementAgent* ManagementBroker::agent;
+bool ManagementBroker::enabled = 0;
ManagementBroker::RemoteAgent::~RemoteAgent ()
{
- if (mgmtObject.get () != 0)
+ if (mgmtObject != 0)
mgmtObject->resourceDestroy ();
}
@@ -91,7 +91,19 @@
}
}
-ManagementBroker::~ManagementBroker () {}
+ManagementBroker::~ManagementBroker ()
+{
+ Mutex::ScopedLock lock (userLock);
+
+ moveNewObjectsLH();
+ for (ManagementObjectMap::iterator iter = managementObjects.begin ();
+ iter != managementObjects.end ();
+ iter++) {
+ ManagementObject* object = iter->second;
+ delete object;
+ }
+ managementObjects.clear();
+}
void ManagementBroker::writeData ()
{
@@ -108,24 +120,25 @@
void ManagementBroker::enableManagement (string dataDir, uint16_t interval, Manageable* broker, int threadPoolSize)
{
enabled = 1;
- if (agent.get () == 0)
- agent = shared_ptr (new ManagementBroker (dataDir, interval, broker, threadPoolSize));
+ if (agent == 0)
+ agent = new ManagementBroker (dataDir, interval, broker, threadPoolSize);
}
-ManagementAgent::shared_ptr ManagementAgent::getAgent (void)
+ManagementAgent* ManagementAgent::getAgent (void)
{
return ManagementBroker::agent;
}
void ManagementBroker::shutdown (void)
{
- if (agent.get () != 0)
+ if (agent != 0)
{
- ManagementBroker* broker = (ManagementBroker*) agent.get();
+ ManagementBroker* broker = (ManagementBroker*) agent;
broker->mExchange.reset ();
broker->dExchange.reset ();
- agent.reset ();
+ delete agent;
+ agent = 0;
}
}
@@ -146,9 +159,9 @@
AddClassLocal (pIter, className, md5Sum, schemaCall);
}
-void ManagementBroker::addObject (ManagementObject::shared_ptr object,
- uint32_t persistId,
- uint32_t persistBank)
+uint64_t ManagementBroker::addObject (ManagementObject* object,
+ uint32_t persistId,
+ uint32_t persistBank)
{
Mutex::ScopedLock lock (addLock);
uint64_t objectId;
@@ -168,6 +181,7 @@
object->setObjectId (objectId);
newManagementObjects[objectId] = object;
+ return objectId;
}
ManagementBroker::Periodic::Periodic (ManagementBroker& _broker, uint32_t _seconds)
@@ -281,7 +295,7 @@
iter != managementObjects.end ();
iter++)
{
- ManagementObject::shared_ptr object = iter->second;
+ ManagementObject* object = iter->second;
object->setAllChanged ();
}
}
@@ -293,7 +307,7 @@
iter != managementObjects.end ();
iter++)
{
- ManagementObject::shared_ptr object = iter->second;
+ ManagementObject* object = iter->second;
if (object->getConfigChanged () || object->isDeleted ())
{
@@ -633,8 +647,7 @@
RemoteAgent* agent = new RemoteAgent;
agent->objIdBank = assignedBank;
- agent->mgmtObject = management::Agent::shared_ptr
- (new management::Agent (this, agent));
+ agent->mgmtObject = new management::Agent (this, agent);
agent->mgmtObject->set_sessionId (sessionId);
agent->mgmtObject->set_label (label);
agent->mgmtObject->set_registeredTo (broker->GetManagementObject()->getObjectId());
@@ -674,7 +687,7 @@
iter != managementObjects.end ();
iter++)
{
- ManagementObject::shared_ptr object = iter->second;
+ ManagementObject* object = iter->second;
if (object->getClassName () == className)
{
Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE);
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.h Tue Jul 8 14:54:20 2008
@@ -21,18 +21,16 @@
* under the License.
*
*/
-
#include "qpid/Options.h"
#include "qpid/broker/Exchange.h"
#include "qpid/broker/Timer.h"
#include "qpid/framing/Uuid.h"
#include "qpid/sys/Mutex.h"
-#include "ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
#include "ManagementObject.h"
#include "Manageable.h"
#include "qpid/management/Agent.h"
#include <qpid/framing/AMQFrame.h>
-#include <boost/shared_ptr.hpp>
namespace qpid {
namespace management {
@@ -48,9 +46,9 @@
virtual ~ManagementBroker ();
- static void enableManagement (std::string dataDir, uint16_t interval, Manageable* broker, int threadPoolSize);
- static shared_ptr getAgent (void);
- static void shutdown (void);
+ static void enableManagement (std::string dataDir, uint16_t interval, Manageable* broker, int threadPoolSize);
+ static ManagementAgent* getAgent (void);
+ static void shutdown (void);
void setInterval (uint16_t _interval) { interval = _interval; }
void setExchange (broker::Exchange::shared_ptr mgmtExchange,
@@ -60,14 +58,19 @@
std::string className,
uint8_t* md5Sum,
ManagementObject::writeSchemaCall_t schemaCall);
- void addObject (ManagementObject::shared_ptr object,
- uint32_t persistId = 0,
- uint32_t persistBank = 4);
+ uint64_t addObject (ManagementObject* object,
+ uint32_t persistId = 0,
+ uint32_t persistBank = 4);
void clientAdded (void);
void dispatchCommand (broker::Deliverable& msg,
const std::string& routingKey,
const framing::FieldTable* args);
-
+
+ // Stubs for remote management agent calls
+ void init (std::string, uint16_t, uint16_t, bool) { assert(0); }
+ uint32_t pollCallbacks (uint32_t) { assert(0); return 0; }
+ int getSignalFd () { assert(0); return -1; }
+
private:
friend class ManagementAgent;
@@ -86,8 +89,8 @@
struct RemoteAgent : public Manageable
{
uint32_t objIdBank;
- Agent::shared_ptr mgmtObject;
- ManagementObject::shared_ptr GetManagementObject (void) const { return mgmtObject; }
+ Agent* mgmtObject;
+ ManagementObject* GetManagementObject (void) const { return mgmtObject; }
virtual ~RemoteAgent ();
};
@@ -143,7 +146,7 @@
ManagementObjectMap managementObjects;
ManagementObjectMap newManagementObjects;
- static shared_ptr agent;
+ static ManagementAgent* agent;
static bool enabled;
framing::Uuid uuid;
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.cpp?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.cpp Tue Jul 8 14:54:20 2008
@@ -21,7 +21,7 @@
#include "Manageable.h"
#include "ManagementObject.h"
-#include "ManagementAgent.h"
+#include "qpid/agent/ManagementAgent.h"
#include "qpid/framing/FieldTable.h"
using namespace qpid::framing;
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h?rev=674994&r1=674993&r2=674994&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h Tue Jul 8 14:54:20 2008
@@ -25,7 +25,6 @@
#include "qpid/sys/Time.h"
#include "qpid/sys/Mutex.h"
#include <qpid/framing/Buffer.h>
-#include <boost/shared_ptr.hpp>
#include <map>
namespace qpid {
@@ -82,7 +81,6 @@
void writeTimestamps (qpid::framing::Buffer& buf);
public:
- typedef boost::shared_ptr<ManagementObject> shared_ptr;
typedef void (*writeSchemaCall_t) (qpid::framing::Buffer&);
ManagementObject (ManagementAgent* _agent, Manageable* _core) :
@@ -121,7 +119,7 @@
inline sys::Mutex& getLock() { return accessLock; }
};
-typedef std::map<uint64_t,ManagementObject::shared_ptr> ManagementObjectMap;
+typedef std::map<uint64_t,ManagementObject*> ManagementObjectMap;
}}