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]

Reply via email to