You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2008/11/06 18:23:57 UTC

svn commit: r711915 - in /incubator/qpid/trunk/qpid/cpp/src/qpid/broker: PersistableMessage.cpp PersistableMessage.h

Author: aconway
Date: Thu Nov  6 09:23:30 2008
New Revision: 711915

URL: http://svn.apache.org/viewvc?rev=711915&view=rev
Log:

Correct excessive use of inline functions in PersistableMessage.h.

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.h

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.cpp?rev=711915&r1=711914&r2=711915&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.cpp Thu Nov  6 09:23:30 2008
@@ -26,6 +26,20 @@
 
 using namespace qpid::broker;
 
+namespace qpid {
+namespace broker {
+
+class MessageStore;
+
+PersistableMessage::~PersistableMessage() {}
+
+PersistableMessage::PersistableMessage() :
+    asyncEnqueueCounter(0), 
+    asyncDequeueCounter(0),
+    contentReleased(false),
+    store(0)
+{}
+
 void PersistableMessage::flush()
 {
     syncList copy;
@@ -45,4 +59,96 @@
     } 
 }
 
+void PersistableMessage::setContentReleased() {contentReleased = true; }
+
+bool PersistableMessage::isContentReleased()const { return contentReleased; }
+	
+void PersistableMessage::waitForEnqueueComplete() {
+    sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock);
+    while (asyncEnqueueCounter > 0) {
+        asyncEnqueueLock.wait();
+    }
+}
+
+bool PersistableMessage::isEnqueueComplete() {
+    sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock);
+    return asyncEnqueueCounter == 0;
+}
+
+void PersistableMessage::enqueueComplete() {
+    bool notify = false;
+    {
+        sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock);
+        if (asyncEnqueueCounter > 0) {
+            if (--asyncEnqueueCounter == 0) {
+                asyncEnqueueLock.notify();
+                notify = true;
+            }
+        }
+    }
+    if (notify) {
+        sys::ScopedLock<sys::Mutex> l(storeLock);
+        if (store) {
+            for (syncList::iterator i = synclist.begin(); i != synclist.end(); ++i) {
+                PersistableQueue::shared_ptr q(i->lock());
+                if (q) q->notifyDurableIOComplete();
+            } 
+        }            
+    }
+}
+
+void PersistableMessage::enqueueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { 
+    if (_store){
+        sys::ScopedLock<sys::Mutex> l(storeLock);
+        store = _store;
+        boost::weak_ptr<PersistableQueue> q(queue);
+        synclist.push_back(q);
+    }
+    enqueueAsync();
+}
+
+void PersistableMessage::enqueueAsync() { 
+    sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock);
+    asyncEnqueueCounter++; 
+}
+
+bool PersistableMessage::isDequeueComplete() { 
+    sys::ScopedLock<sys::Monitor> l(asyncDequeueLock);
+    return asyncDequeueCounter == 0;
+}
     
+void PersistableMessage::dequeueComplete() { 
+
+    sys::ScopedLock<sys::Monitor> l(asyncDequeueLock);
+    if (asyncDequeueCounter > 0) {
+        if (--asyncDequeueCounter == 0) {
+            asyncDequeueLock.notify();
+        }
+    }
+}
+
+void PersistableMessage::waitForDequeueComplete() {
+    sys::ScopedLock<sys::Monitor> l(asyncDequeueLock);
+    while (asyncDequeueCounter > 0) {
+        asyncDequeueLock.wait();
+    }
+}
+
+void PersistableMessage::dequeueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { 
+    if (_store){
+        sys::ScopedLock<sys::Mutex> l(storeLock);
+        store = _store;
+        boost::weak_ptr<PersistableQueue> q(queue);
+        synclist.push_back(q);
+    }
+    dequeueAsync();
+}
+
+void PersistableMessage::dequeueAsync() { 
+    sys::ScopedLock<sys::Monitor> l(asyncDequeueLock);
+    asyncDequeueCounter++; 
+}
+
+}}
+
+

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.h?rev=711915&r1=711914&r2=711915&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/PersistableMessage.h Thu Nov  6 09:23:30 2008
@@ -41,6 +41,7 @@
  */
 class PersistableMessage : public Persistable
 {
+    typedef std::list< boost::weak_ptr<PersistableQueue> > syncList;
     sys::Monitor asyncEnqueueLock;
     sys::Monitor asyncDequeueLock;
     sys::Mutex storeLock;
@@ -62,15 +63,16 @@
      * dequeues.
      */
     int asyncDequeueCounter;
-protected:
-    typedef std::list< boost::weak_ptr<PersistableQueue> > syncList;
+
+    bool contentReleased;
     syncList synclist;
+
+  protected:
     MessageStore* store;
-    bool contentReleased;
     
-    inline void setContentReleased() {contentReleased = true; }
+    void setContentReleased();
 
-public:
+  public:
     typedef boost::shared_ptr<PersistableMessage> shared_ptr;
 
     /**
@@ -78,106 +80,33 @@
      */
     virtual uint32_t encodedHeaderSize() const = 0;
 
-    virtual ~PersistableMessage() {};
+    virtual ~PersistableMessage();
 
-    PersistableMessage(): 
-    	asyncEnqueueCounter(0), 
-    	asyncDequeueCounter(0),
-        store(0),
-        contentReleased(false) 
-        {}
+    PersistableMessage();
 
     void flush();
     
-    inline bool isContentReleased()const {return contentReleased; }
+    bool isContentReleased() const;
 	
-    inline void waitForEnqueueComplete() {
-        sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock);
-        while (asyncEnqueueCounter > 0) {
-            asyncEnqueueLock.wait();
-        }
-    }
-
-    inline bool isEnqueueComplete() {
-        sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock);
-        return asyncEnqueueCounter == 0;
-    }
-
-    inline void enqueueComplete() {
-        bool notify = false;
-        {
-            sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock);
-            if (asyncEnqueueCounter > 0) {
-                if (--asyncEnqueueCounter == 0) {
-                    asyncEnqueueLock.notify();
-                    notify = true;
-                }
-            }
-        }
-        if (notify) {
-            sys::ScopedLock<sys::Mutex> l(storeLock);
-            if (store) {
-                for (syncList::iterator i = synclist.begin(); i != synclist.end(); ++i) {
-                    PersistableQueue::shared_ptr q(i->lock());
-                    if (q) q->notifyDurableIOComplete();
-                } 
-            }            
-        }
-    }
-
-    inline void enqueueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { 
-        if (_store){
-            sys::ScopedLock<sys::Mutex> l(storeLock);
-            store = _store;
-            boost::weak_ptr<PersistableQueue> q(queue);
-            synclist.push_back(q);
-        }
-        enqueueAsync();
-    }
-
-    inline void enqueueAsync() { 
-        sys::ScopedLock<sys::Monitor> l(asyncEnqueueLock);
-        asyncEnqueueCounter++; 
-    }
-
-    inline bool isDequeueComplete() { 
-        sys::ScopedLock<sys::Monitor> l(asyncDequeueLock);
-        return asyncDequeueCounter == 0;
-    }
-    
-    inline void dequeueComplete() { 
+    void waitForEnqueueComplete();
 
-        sys::ScopedLock<sys::Monitor> l(asyncDequeueLock);
-        if (asyncDequeueCounter > 0) {
-            if (--asyncDequeueCounter == 0) {
-                asyncDequeueLock.notify();
-            }
-        }
-    }
-
-    inline void waitForDequeueComplete() {
-        sys::ScopedLock<sys::Monitor> l(asyncDequeueLock);
-        while (asyncDequeueCounter > 0) {
-            asyncDequeueLock.wait();
-        }
-    }
-
-    inline void dequeueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { 
-        if (_store){
-            sys::ScopedLock<sys::Mutex> l(storeLock);
-            store = _store;
-            boost::weak_ptr<PersistableQueue> q(queue);
-            synclist.push_back(q);
-        }
-        dequeueAsync();
-    }
-
-    inline void dequeueAsync() { 
-        sys::ScopedLock<sys::Monitor> l(asyncDequeueLock);
-        asyncDequeueCounter++; 
-    }
+    bool isEnqueueComplete();
 
+    void enqueueComplete();
+
+    void enqueueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store);
+
+    void enqueueAsync();
+
+    bool isDequeueComplete();
     
+    void dequeueComplete();
+
+    void waitForDequeueComplete();
+
+    void dequeueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store);
+
+    void dequeueAsync();
 };
 
 }}