Author: gsim
Date: Wed Feb 25 17:00:54 2009
New Revision: 747861
URL: http://svn.apache.org/viewvc?rev=747861&view=rev
Log:
Need to register finalizer so that we can release the shared pointer to the
queue and have the queue deleted before the management agents deletes the
underlying qmf object.
Modified:
qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.cpp
qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.h
Modified: qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.cpp?rev=747861&r1=747860&r2=747861&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.cpp
(original)
+++ qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.cpp Wed
Feb 25 17:00:54 2009
@@ -131,6 +131,7 @@
{
Broker* broker = dynamic_cast<broker::Broker*>(&target);
if (broker && !options.queue.empty()) {
+
broker->addFinalizer(boost::bind(&ReplicatingEventListener::shutdown, this));
if (options.createQueue) {
queue = broker->getQueues().declare(options.queue).first;
} else {
@@ -147,6 +148,7 @@
}
void ReplicatingEventListener::earlyInitialize(Target&) {}
+void ReplicatingEventListener::shutdown() { queue.reset(); }
ReplicatingEventListener::PluginOptions::PluginOptions() : Options("Queue
Replication Options"),
name("replicator"),
Modified: qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.h
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.h?rev=747861&r1=747860&r2=747861&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.h
(original)
+++ qpid/trunk/qpid/cpp/src/qpid/replication/ReplicatingEventListener.h Wed Feb
25 17:00:54 2009
@@ -62,6 +62,7 @@
void deliverDequeueMessage(const qpid::broker::QueuedMessage& enqueued);
void deliverEnqueueMessage(const qpid::broker::QueuedMessage& enqueued);
+ void shutdown();
boost::intrusive_ptr<qpid::broker::Message> createMessage(const
qpid::framing::FieldTable& headers);
boost::intrusive_ptr<qpid::broker::Message>
cloneMessage(qpid::broker::Queue& queue,
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]