diff options
author | Kim van der Riet <kpvdr@apache.org> | 2012-06-11 18:07:45 +0000 |
---|---|---|
committer | Kim van der Riet <kpvdr@apache.org> | 2012-06-11 18:07:45 +0000 |
commit | 01174a9e568f11cd5aa4f22aaa914e00ab9fe163 (patch) | |
tree | 9ce51be9b6ddc0f648344d32a07f4b925eb75708 | |
parent | f9f2c6aae6514d0e279b95aaaf90195326738b66 (diff) | |
download | qpid-python-01174a9e568f11cd5aa4f22aaa914e00ab9fe163.tar.gz |
QPID-3858: WIP: Changed all boost::shared_ptr<SimplePersistableMessage> to boost_intrusive_ptr<SimplePersistableMessage> to better match broker message usage patterns.
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/asyncstore@1348950 13f79535-47bb-0310-9956-ffa450edef68
9 files changed, 24 insertions, 20 deletions
diff --git a/cpp/src/tests/storePerftools/asyncPerf/MessageAsyncContext.cpp b/cpp/src/tests/storePerftools/asyncPerf/MessageAsyncContext.cpp index 8b14bff4f8..5e161d49c8 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/MessageAsyncContext.cpp +++ b/cpp/src/tests/storePerftools/asyncPerf/MessageAsyncContext.cpp @@ -22,6 +22,7 @@ */ #include "MessageAsyncContext.h" +#include "SimplePersistableMessage.h" #include <cassert> @@ -29,7 +30,7 @@ namespace tests { namespace storePerftools { namespace asyncPerf { -MessageAsyncContext::MessageAsyncContext(boost::shared_ptr<SimplePersistableMessage> msg, +MessageAsyncContext::MessageAsyncContext(boost::intrusive_ptr<SimplePersistableMessage> msg, const qpid::asyncStore::AsyncOperation::opCode op, boost::shared_ptr<SimplePersistableQueue> q) : m_msg(msg), @@ -55,7 +56,7 @@ MessageAsyncContext::getOpStr() const return qpid::asyncStore::AsyncOperation::getOpStr(m_op); } -boost::shared_ptr<SimplePersistableMessage> +boost::intrusive_ptr<SimplePersistableMessage> MessageAsyncContext::getMessage() const { return m_msg; diff --git a/cpp/src/tests/storePerftools/asyncPerf/MessageAsyncContext.h b/cpp/src/tests/storePerftools/asyncPerf/MessageAsyncContext.h index 9d7958166e..f13cd4ab64 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/MessageAsyncContext.h +++ b/cpp/src/tests/storePerftools/asyncPerf/MessageAsyncContext.h @@ -27,6 +27,7 @@ #include "qpid/asyncStore/AsyncOperation.h" #include "qpid/broker/AsyncStore.h" // qpid::broker::BrokerAsyncContext +#include <boost/intrusive_ptr.hpp> #include <boost/shared_ptr.hpp> namespace tests { @@ -39,18 +40,18 @@ class SimplePersistableQueue; class MessageAsyncContext : public qpid::broker::BrokerAsyncContext { public: - MessageAsyncContext(boost::shared_ptr<SimplePersistableMessage> msg, + MessageAsyncContext(boost::intrusive_ptr<SimplePersistableMessage> msg, const qpid::asyncStore::AsyncOperation::opCode op, boost::shared_ptr<SimplePersistableQueue> q); virtual ~MessageAsyncContext(); qpid::asyncStore::AsyncOperation::opCode getOpCode() const; const char* getOpStr() const; - boost::shared_ptr<SimplePersistableMessage> getMessage() const; + boost::intrusive_ptr<SimplePersistableMessage> getMessage() const; boost::shared_ptr<SimplePersistableQueue> getQueue() const; void destroy(); private: - boost::shared_ptr<SimplePersistableMessage> m_msg; + boost::intrusive_ptr<SimplePersistableMessage> m_msg; const qpid::asyncStore::AsyncOperation::opCode m_op; boost::shared_ptr<SimplePersistableQueue> m_q; }; diff --git a/cpp/src/tests/storePerftools/asyncPerf/MessageProducer.cpp b/cpp/src/tests/storePerftools/asyncPerf/MessageProducer.cpp index 5bb72da883..5530513e12 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/MessageProducer.cpp +++ b/cpp/src/tests/storePerftools/asyncPerf/MessageProducer.cpp @@ -52,7 +52,7 @@ void* MessageProducer::runProducers() { for (uint32_t numMsgs=0; numMsgs<m_perfTestParams.m_numMsgs; ++numMsgs) { - boost::shared_ptr<SimplePersistableMessage> msg(new SimplePersistableMessage(m_msgData, m_perfTestParams.m_msgSize, m_store)); + boost::intrusive_ptr<SimplePersistableMessage> msg(new SimplePersistableMessage(m_msgData, m_perfTestParams.m_msgSize, m_store)); m_queue->deliver(msg); } return 0; diff --git a/cpp/src/tests/storePerftools/asyncPerf/QueueAsyncContext.cpp b/cpp/src/tests/storePerftools/asyncPerf/QueueAsyncContext.cpp index a389f86739..4836f9358a 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/QueueAsyncContext.cpp +++ b/cpp/src/tests/storePerftools/asyncPerf/QueueAsyncContext.cpp @@ -22,6 +22,7 @@ */ #include "QueueAsyncContext.h" +#include "SimplePersistableMessage.h" #include <cassert> @@ -42,7 +43,7 @@ QueueAsyncContext::QueueAsyncContext(boost::shared_ptr<SimplePersistableQueue> q } QueueAsyncContext::QueueAsyncContext(boost::shared_ptr<SimplePersistableQueue> q, - boost::shared_ptr<SimplePersistableMessage> msg, + boost::intrusive_ptr<SimplePersistableMessage> msg, const qpid::asyncStore::AsyncOperation::opCode op, qpid::broker::AsyncResultCallback rcb, qpid::broker::AsyncResultQueue* const arq) : @@ -77,7 +78,7 @@ QueueAsyncContext::getQueue() const return m_q; } -boost::shared_ptr<SimplePersistableMessage> +boost::intrusive_ptr<SimplePersistableMessage> QueueAsyncContext::getMessage() const { return m_msg; diff --git a/cpp/src/tests/storePerftools/asyncPerf/QueueAsyncContext.h b/cpp/src/tests/storePerftools/asyncPerf/QueueAsyncContext.h index 982aef3874..df45117fe4 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/QueueAsyncContext.h +++ b/cpp/src/tests/storePerftools/asyncPerf/QueueAsyncContext.h @@ -27,10 +27,10 @@ #include "qpid/asyncStore/AsyncOperation.h" #include "qpid/broker/AsyncStore.h" +#include <boost/intrusive_ptr.hpp> #include <boost/shared_ptr.hpp> - namespace tests { namespace storePerftools { namespace asyncPerf { @@ -46,7 +46,7 @@ public: qpid::broker::AsyncResultCallback rcb, qpid::broker::AsyncResultQueue* const arq); QueueAsyncContext(boost::shared_ptr<SimplePersistableQueue> q, - boost::shared_ptr<SimplePersistableMessage> msg, + boost::intrusive_ptr<SimplePersistableMessage> msg, const qpid::asyncStore::AsyncOperation::opCode op, qpid::broker::AsyncResultCallback rcb, qpid::broker::AsyncResultQueue* const arq); @@ -54,7 +54,7 @@ public: qpid::asyncStore::AsyncOperation::opCode getOpCode() const; const char* getOpStr() const; boost::shared_ptr<SimplePersistableQueue> getQueue() const; - boost::shared_ptr<SimplePersistableMessage> getMessage() const; + boost::intrusive_ptr<SimplePersistableMessage> getMessage() const; qpid::broker::AsyncResultQueue* getAsyncResultQueue() const; qpid::broker::AsyncResultCallback getAsyncResultCallback() const; void invokeCallback(const qpid::broker::AsyncResultHandle* const arh) const; @@ -62,7 +62,7 @@ public: private: boost::shared_ptr<SimplePersistableQueue> m_q; - boost::shared_ptr<SimplePersistableMessage> m_msg; + boost::intrusive_ptr<SimplePersistableMessage> m_msg; const qpid::asyncStore::AsyncOperation::opCode m_op; qpid::broker::AsyncResultCallback m_rcb; qpid::broker::AsyncResultQueue* const m_arq; diff --git a/cpp/src/tests/storePerftools/asyncPerf/QueuedMessage.cpp b/cpp/src/tests/storePerftools/asyncPerf/QueuedMessage.cpp index 8530051eec..dd4de355b3 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/QueuedMessage.cpp +++ b/cpp/src/tests/storePerftools/asyncPerf/QueuedMessage.cpp @@ -37,7 +37,7 @@ QueuedMessage::QueuedMessage() : {} QueuedMessage::QueuedMessage(SimplePersistableQueue* q, - boost::shared_ptr<SimplePersistableMessage> msg) : + boost::intrusive_ptr<SimplePersistableMessage> msg) : m_queue(q), m_msg(msg), m_enqHandle(q->getStore() ? q->getStore()->createEnqueueHandle(msg->getHandle(), q->getHandle()) : qpid::broker::EnqueueHandle(0)) @@ -61,7 +61,7 @@ QueuedMessage::operator=(const QueuedMessage& rhs) return *this; } -boost::shared_ptr<SimplePersistableMessage> +boost::intrusive_ptr<SimplePersistableMessage> QueuedMessage::payload() const { return m_msg; diff --git a/cpp/src/tests/storePerftools/asyncPerf/QueuedMessage.h b/cpp/src/tests/storePerftools/asyncPerf/QueuedMessage.h index b1e8a7226a..29e7f792cd 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/QueuedMessage.h +++ b/cpp/src/tests/storePerftools/asyncPerf/QueuedMessage.h @@ -26,7 +26,7 @@ #include "qpid/broker/EnqueueHandle.h" -#include <boost/shared_ptr.hpp> +#include <boost/intrusive_ptr.hpp> namespace tests { namespace storePerftools { @@ -40,17 +40,17 @@ class QueuedMessage public: QueuedMessage(); QueuedMessage(SimplePersistableQueue* q, - boost::shared_ptr<SimplePersistableMessage> msg); + boost::intrusive_ptr<SimplePersistableMessage> msg); QueuedMessage(const QueuedMessage& qm); ~QueuedMessage(); QueuedMessage& operator=(const QueuedMessage& rhs); - boost::shared_ptr<SimplePersistableMessage> payload() const; + boost::intrusive_ptr<SimplePersistableMessage> payload() const; const qpid::broker::EnqueueHandle& enqHandle() const; qpid::broker::EnqueueHandle& enqHandle(); private: SimplePersistableQueue* m_queue; - boost::shared_ptr<SimplePersistableMessage> m_msg; + boost::intrusive_ptr<SimplePersistableMessage> m_msg; qpid::broker::EnqueueHandle m_enqHandle; }; diff --git a/cpp/src/tests/storePerftools/asyncPerf/SimplePersistableQueue.cpp b/cpp/src/tests/storePerftools/asyncPerf/SimplePersistableQueue.cpp index 3d973e2957..b34357c144 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/SimplePersistableQueue.cpp +++ b/cpp/src/tests/storePerftools/asyncPerf/SimplePersistableQueue.cpp @@ -156,7 +156,7 @@ SimplePersistableQueue::asyncDestroy(const bool deleteQueue) } void -SimplePersistableQueue::deliver(boost::shared_ptr<SimplePersistableMessage> msg) +SimplePersistableQueue::deliver(boost::intrusive_ptr<SimplePersistableMessage> msg) { QueuedMessage qm(this, msg); enqueue((SimpleTransactionContext*)0, qm); diff --git a/cpp/src/tests/storePerftools/asyncPerf/SimplePersistableQueue.h b/cpp/src/tests/storePerftools/asyncPerf/SimplePersistableQueue.h index 1366c7772b..3bc0972ede 100644 --- a/cpp/src/tests/storePerftools/asyncPerf/SimplePersistableQueue.h +++ b/cpp/src/tests/storePerftools/asyncPerf/SimplePersistableQueue.h @@ -31,6 +31,7 @@ #include "qpid/broker/QueueHandle.h" #include "qpid/sys/Monitor.h" +#include <boost/intrusive_ptr.hpp> #include <boost/shared_ptr.hpp> #include <boost/enable_shared_from_this.hpp> @@ -75,7 +76,7 @@ public: void asyncDestroy(const bool deleteQueue); // --- Methods in msg handling path from qpid::Queue --- - void deliver(boost::shared_ptr<SimplePersistableMessage> msg); + void deliver(boost::intrusive_ptr<SimplePersistableMessage> msg); bool dispatch(); // similar to qpid::broker::Queue::distpatch(Consumer&) but without Consumer param bool enqueue(SimpleTransactionContext* ctxt, QueuedMessage& qm); |