summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management/ManagementBroker.cpp
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-07-08 21:54:20 +0000
committerTed Ross <tross@apache.org>2008-07-08 21:54:20 +0000
commit391608a73f18a1797ab0c358f0a94364dc888eb2 (patch)
treec7f26ec2072884a2e94a767a3d4f29d76c4e81c7 /cpp/src/qpid/management/ManagementBroker.cpp
parent5515803c70dfeff04c190533e7f0187a0e732bf4 (diff)
downloadqpid-python-391608a73f18a1797ab0c358f0a94364dc888eb2.tar.gz
QPID-1170 - Remove boost dependency from management agent interface
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@674994 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/management/ManagementBroker.cpp')
-rw-r--r--cpp/src/qpid/management/ManagementBroker.cpp49
1 files changed, 31 insertions, 18 deletions
diff --git a/cpp/src/qpid/management/ManagementBroker.cpp b/cpp/src/qpid/management/ManagementBroker.cpp
index 271a2ec73c..106033f76f 100644
--- a/cpp/src/qpid/management/ManagementBroker.cpp
+++ b/cpp/src/qpid/management/ManagementBroker.cpp
@@ -38,12 +38,12 @@ using namespace qpid::broker;
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 (string _dataDir, uint16_t _interval, Managea
}
}
-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::writeData ()
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 @@ void ManagementBroker::RegisterClass (string packageName,
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 @@ void ManagementBroker::addObject (ManagementObject::shared_ptr object,
object->setObjectId (objectId);
newManagementObjects[objectId] = object;
+ return objectId;
}
ManagementBroker::Periodic::Periodic (ManagementBroker& _broker, uint32_t _seconds)
@@ -281,7 +295,7 @@ void ManagementBroker::PeriodicProcessing (void)
iter != managementObjects.end ();
iter++)
{
- ManagementObject::shared_ptr object = iter->second;
+ ManagementObject* object = iter->second;
object->setAllChanged ();
}
}
@@ -293,7 +307,7 @@ void ManagementBroker::PeriodicProcessing (void)
iter != managementObjects.end ();
iter++)
{
- ManagementObject::shared_ptr object = iter->second;
+ ManagementObject* object = iter->second;
if (object->getConfigChanged () || object->isDeleted ())
{
@@ -633,8 +647,7 @@ void ManagementBroker::handleAttachRequestLH (Buffer& inBuffer, string replyToKe
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 @@ void ManagementBroker::handleGetQueryLH (Buffer& inBuffer, string replyToKey, ui
iter != managementObjects.end ();
iter++)
{
- ManagementObject::shared_ptr object = iter->second;
+ ManagementObject* object = iter->second;
if (object->getClassName () == className)
{
Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE);