summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-07-16 20:25:12 +0000
committerTed Ross <tross@apache.org>2008-07-16 20:25:12 +0000
commit0742abc5e6831675aba58949d763fb4f819cde69 (patch)
tree806d768e89b6fec8d301396ec889a12f6c9e33e1 /cpp/src/qpid/broker
parent1848880ade63a0d2e2e9472a3fc231c52962dd78 (diff)
downloadqpid-python-0742abc5e6831675aba58949d763fb4f819cde69.tar.gz
QPID-1170 - Provide a better factory for creation and deletion of the management agent
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@677408 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker')
-rw-r--r--cpp/src/qpid/broker/Bridge.cpp7
-rw-r--r--cpp/src/qpid/broker/Broker.cpp10
-rw-r--r--cpp/src/qpid/broker/Broker.h1
-rw-r--r--cpp/src/qpid/broker/Connection.cpp2
-rw-r--r--cpp/src/qpid/broker/Exchange.cpp8
-rw-r--r--cpp/src/qpid/broker/Link.cpp9
-rw-r--r--cpp/src/qpid/broker/Queue.cpp4
-rw-r--r--cpp/src/qpid/broker/SessionState.cpp2
-rw-r--r--cpp/src/qpid/broker/System.cpp2
-rw-r--r--cpp/src/qpid/broker/Vhost.cpp2
10 files changed, 23 insertions, 24 deletions
diff --git a/cpp/src/qpid/broker/Bridge.cpp b/cpp/src/qpid/broker/Bridge.cpp
index 9e49404bae..53bed020e2 100644
--- a/cpp/src/qpid/broker/Bridge.cpp
+++ b/cpp/src/qpid/broker/Bridge.cpp
@@ -40,7 +40,7 @@ Bridge::Bridge(Link* _link, framing::ChannelId _id, CancellationListener l,
link(_link), id(_id), args(_args), mgmtObject(0),
listener(l), name(Uuid(true).str()), persistenceId(0)
{
- ManagementAgent* agent = ManagementAgent::getAgent();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
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,
@@ -106,9 +106,8 @@ void Bridge::destroy()
void Bridge::setPersistenceId(uint64_t id) const
{
- if (mgmtObject != 0 && persistenceId == 0)
- {
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ if (mgmtObject != 0 && persistenceId == 0) {
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
agent->addObject (mgmtObject, id);
}
persistenceId = id;
diff --git a/cpp/src/qpid/broker/Broker.cpp b/cpp/src/qpid/broker/Broker.cpp
index 47d9dad537..bffca94f95 100644
--- a/cpp/src/qpid/broker/Broker.cpp
+++ b/cpp/src/qpid/broker/Broker.cpp
@@ -122,6 +122,7 @@ const std::string qpid_management("qpid.management");
Broker::Broker(const Broker::Options& conf) :
poller(new Poller),
config(conf),
+ managementAgentSingleton(!config.enableMgmt),
store(0),
dataDir(conf.noDataDir ? std::string () : conf.dataDir),
links(this),
@@ -134,10 +135,10 @@ Broker::Broker(const Broker::Options& conf) :
{
if(conf.enableMgmt){
QPID_LOG(info, "Management enabled");
- ManagementBroker::enableManagement (dataDir.isEnabled () ? dataDir.getPath () : string (),
- conf.mgmtPubInterval, this, conf.workerThreads + 3);
- managementAgent = management::ManagementAgent::getAgent ();
- ((ManagementBroker*) managementAgent)->setInterval (conf.mgmtPubInterval);
+ managementAgent = managementAgentSingleton.getInstance();
+ ((ManagementBroker*) managementAgent)->configure
+ (dataDir.isEnabled () ? dataDir.getPath () : string (),
+ conf.mgmtPubInterval, this, conf.workerThreads + 3);
qpid::management::PackageQpid packageInitializer (managementAgent);
System* system = new System (dataDir.isEnabled () ? dataDir.getPath () : string ());
@@ -294,7 +295,6 @@ Broker::~Broker() {
sasl_done();
#endif
}
- ManagementBroker::shutdown();
QPID_LOG(notice, "Shut down");
}
diff --git a/cpp/src/qpid/broker/Broker.h b/cpp/src/qpid/broker/Broker.h
index a8e5300718..ce0858f49b 100644
--- a/cpp/src/qpid/broker/Broker.h
+++ b/cpp/src/qpid/broker/Broker.h
@@ -149,6 +149,7 @@ class Broker : public sys::Runnable, public Plugin::Target,
private:
boost::shared_ptr<sys::Poller> poller;
Options config;
+ management::ManagementAgent::Singleton managementAgentSingleton;
std::vector< boost::shared_ptr<sys::ProtocolFactory> > protocolFactories;
MessageStore* store;
DataDir dataDir;
diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp
index 61384638b3..5e85d3c89c 100644
--- a/cpp/src/qpid/broker/Connection.cpp
+++ b/cpp/src/qpid/broker/Connection.cpp
@@ -65,7 +65,7 @@ Connection::Connection(ConnectionOutputHandler* out_, Broker& broker_, const std
if (parent != 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0)
mgmtObject = new management::Connection(agent, this, parent, mgmtId, !isLink);
diff --git a/cpp/src/qpid/broker/Exchange.cpp b/cpp/src/qpid/broker/Exchange.cpp
index e7de5615ff..fbfcaede82 100644
--- a/cpp/src/qpid/broker/Exchange.cpp
+++ b/cpp/src/qpid/broker/Exchange.cpp
@@ -36,7 +36,7 @@ Exchange::Exchange (const string& _name, Manageable* parent) :
{
if (parent != 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0)
{
mgmtExchange = new management::Exchange (agent, this, parent, _name, durable);
@@ -51,7 +51,7 @@ Exchange::Exchange(const string& _name, bool _durable, const qpid::framing::Fiel
{
if (parent != 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0)
{
mgmtExchange = new management::Exchange (agent, this, parent, _name, durable);
@@ -77,7 +77,7 @@ void Exchange::setPersistenceId(uint64_t id) const
{
if (mgmtExchange != 0 && persistenceId == 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
agent->addObject (mgmtExchange, id, 2);
}
persistenceId = id;
@@ -124,7 +124,7 @@ Exchange::Binding::Binding(const string& _key, Queue::shared_ptr _queue, Exchang
{
if (parent != 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0)
{
ManagementObject* mo = queue->GetManagementObject();
diff --git a/cpp/src/qpid/broker/Link.cpp b/cpp/src/qpid/broker/Link.cpp
index 5c470040e2..9cbf86ebd3 100644
--- a/cpp/src/qpid/broker/Link.cpp
+++ b/cpp/src/qpid/broker/Link.cpp
@@ -59,7 +59,7 @@ Link::Link(LinkRegistry* _links,
{
if (parent != 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0)
{
mgmtObject = new management::Link(agent, this, parent, _host, _port, _useSsl, _durable);
@@ -264,10 +264,9 @@ void Link::notifyConnectionForced(const string text)
void Link::setPersistenceId(uint64_t id) const
{
- if (mgmtObject != 0 && persistenceId == 0)
- {
- ManagementAgent* agent = ManagementAgent::getAgent ();
- agent->addObject (mgmtObject, id);
+ if (mgmtObject != 0 && persistenceId == 0) {
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
+ agent->addObject(mgmtObject, id);
}
persistenceId = id;
}
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index 6d60f98505..bf64760fc7 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -67,7 +67,7 @@ Queue::Queue(const string& _name, bool _autodelete,
{
if (parent != 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0)
{
@@ -576,7 +576,7 @@ void Queue::setPersistenceId(uint64_t _persistenceId) const
{
if (mgmtObject != 0 && persistenceId == 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
agent->addObject (mgmtObject, _persistenceId, 3);
if (externalQueueStore) {
diff --git a/cpp/src/qpid/broker/SessionState.cpp b/cpp/src/qpid/broker/SessionState.cpp
index 0a122fcae8..3cc509c904 100644
--- a/cpp/src/qpid/broker/SessionState.cpp
+++ b/cpp/src/qpid/broker/SessionState.cpp
@@ -62,7 +62,7 @@ SessionState::SessionState(
{
Manageable* parent = broker.GetVhostObject ();
if (parent != 0) {
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0) {
mgmtObject = new management::Session (agent, this, parent, getId().getName());
mgmtObject->set_attached (0);
diff --git a/cpp/src/qpid/broker/System.cpp b/cpp/src/qpid/broker/System.cpp
index 5e51beac35..6c58339432 100644
--- a/cpp/src/qpid/broker/System.cpp
+++ b/cpp/src/qpid/broker/System.cpp
@@ -30,7 +30,7 @@ using namespace std;
System::System (string _dataDir) : mgmtObject(0)
{
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0)
{
diff --git a/cpp/src/qpid/broker/Vhost.cpp b/cpp/src/qpid/broker/Vhost.cpp
index 6c31628c5f..23203ec13e 100644
--- a/cpp/src/qpid/broker/Vhost.cpp
+++ b/cpp/src/qpid/broker/Vhost.cpp
@@ -27,7 +27,7 @@ Vhost::Vhost (management::Manageable* parentBroker) : mgmtObject(0)
{
if (parentBroker != 0)
{
- ManagementAgent* agent = ManagementAgent::getAgent ();
+ ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0)
{