You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by cc...@apache.org on 2007/09/14 20:46:33 UTC

svn commit: r575773 - in /incubator/qpid/trunk/qpid/cpp/src/qpid/broker: PersistableQueue.h RecoverableQueue.h RecoveryManagerImpl.cpp

Author: cctrieloff
Date: Fri Sep 14 11:44:27 2007
New Revision: 575773

URL: http://svn.apache.org/viewvc?rev=575773&view=rev
Log:
recover support for async stores

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableQueue.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoverableQueue.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableQueue.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableQueue.h?rev=575773&r1=575772&r2=575773&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableQueue.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableQueue.h Fri Sep 14 11:44:27 2007
@@ -56,7 +56,12 @@
 	   delete externalQueueStore;
     };
 
-    inline void setExternalQueueStore(ExternalQueueStore* inst) {externalQueueStore = inst;};
+    inline void setExternalQueueStore(ExternalQueueStore* inst){
+        if (externalQueueStore!=inst && externalQueueStore) 
+	   delete externalQueueStore; 
+        externalQueueStore = inst;
+    };
+    
     inline ExternalQueueStore* getExternalQueueStore() const {return externalQueueStore;};
     
     PersistableQueue():externalQueueStore(NULL){

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoverableQueue.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoverableQueue.h?rev=575773&r1=575772&r2=575773&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoverableQueue.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoverableQueue.h Fri Sep 14 11:44:27 2007
@@ -28,6 +28,8 @@
 namespace qpid {
 namespace broker {
 
+class ExternalQueueStore;
+
 /**
  * The interface through which messages are added back to queues on
  * recovery.
@@ -43,6 +45,11 @@
      */
     virtual void recover(RecoverableMessage::shared_ptr msg) = 0;
     virtual ~RecoverableQueue() {};
+
+    virtual const std::string& getName() const = 0;
+    virtual void setExternalQueueStore(ExternalQueueStore* inst) = 0;
+
+
 };
 
 }}

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp?rev=575773&r1=575772&r2=575773&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp Fri Sep 14 11:44:27 2007
@@ -62,6 +62,8 @@
     RecoverableQueueImpl(Queue::shared_ptr& _queue) : queue(_queue) {}
     ~RecoverableQueueImpl() {};
     void setPersistenceId(uint64_t id);
+    const std::string& getName() const;
+    void setExternalQueueStore(ExternalQueueStore* inst);
     void recover(RecoverableMessage::shared_ptr msg);
     void enqueue(DtxBuffer::shared_ptr buffer, RecoverableMessage::shared_ptr msg);
     void dequeue(DtxBuffer::shared_ptr buffer, RecoverableMessage::shared_ptr msg);
@@ -153,6 +155,16 @@
 void RecoverableQueueImpl::setPersistenceId(uint64_t id)
 {
     queue->setPersistenceId(id);
+}
+
+const std::string& RecoverableQueueImpl::getName() const
+{
+    return queue->getName();
+}
+    
+void RecoverableQueueImpl::setExternalQueueStore(ExternalQueueStore* inst)
+{
+    queue->setExternalQueueStore(inst);
 }
 
 void RecoverableExchangeImpl::setPersistenceId(uint64_t id)