From c598f75a71e141ca8738a4c11cd8d93dd7ae5dd3 Mon Sep 17 00:00:00 2001 From: Kim van der Riet Date: Mon, 26 Nov 2007 21:48:37 +0000 Subject: Switched all regular PersistentMessage* and PersistentMessage& to intrusive_ptr, so as to hook into the refcount for a message while it is in the store. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@598440 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/tests/TxPublishTest.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'cpp/src/tests/TxPublishTest.cpp') diff --git a/cpp/src/tests/TxPublishTest.cpp b/cpp/src/tests/TxPublishTest.cpp index b969598f1d..c9da9762ec 100644 --- a/cpp/src/tests/TxPublishTest.cpp +++ b/cpp/src/tests/TxPublishTest.cpp @@ -36,17 +36,17 @@ using namespace qpid::framing; class TxPublishTest : public CppUnit::TestCase { - typedef std::pair msg_queue_pair; + typedef std::pair > msg_queue_pair; class TestMessageStore : public NullMessageStore { public: vector enqueued; - void enqueue(TransactionContext*, PersistableMessage& msg, const PersistableQueue& queue) + void enqueue(TransactionContext*, intrusive_ptr& msg, const PersistableQueue& queue) { - msg.enqueueComplete(); - enqueued.push_back(msg_queue_pair(queue.getName(), &msg)); + msg->enqueueComplete(); + enqueued.push_back(msg_queue_pair(queue.getName(), msg)); } //dont care about any of the other methods: @@ -81,16 +81,15 @@ public: void testPrepare() { + intrusive_ptr pmsg = static_pointer_cast(msg); //ensure messages are enqueued in store op.prepare(0); CPPUNIT_ASSERT_EQUAL((size_t) 2, store.enqueued.size()); CPPUNIT_ASSERT_EQUAL(string("queue1"), store.enqueued[0].first); - CPPUNIT_ASSERT_EQUAL((PersistableMessage*) msg.get(), store.enqueued[0].second); + CPPUNIT_ASSERT_EQUAL(pmsg, store.enqueued[0].second); CPPUNIT_ASSERT_EQUAL(string("queue2"), store.enqueued[1].first); - CPPUNIT_ASSERT_EQUAL((PersistableMessage*) msg.get(), store.enqueued[1].second); - CPPUNIT_ASSERT_EQUAL( true, ((PersistableMessage*) msg.get())->isEnqueueComplete()); - - + CPPUNIT_ASSERT_EQUAL(pmsg, store.enqueued[1].second); + CPPUNIT_ASSERT_EQUAL( true, ( static_pointer_cast(msg))->isEnqueueComplete()); } void testCommit() @@ -101,7 +100,7 @@ public: CPPUNIT_ASSERT_EQUAL((uint32_t) 1, queue1->getMessageCount()); intrusive_ptr msg_dequeue = queue1->dequeue().payload; - CPPUNIT_ASSERT_EQUAL( true, ((PersistableMessage*) msg_dequeue.get())->isEnqueueComplete()); + CPPUNIT_ASSERT_EQUAL( true, (static_pointer_cast(msg_dequeue))->isEnqueueComplete()); CPPUNIT_ASSERT_EQUAL(msg, msg_dequeue); CPPUNIT_ASSERT_EQUAL((uint32_t) 1, queue2->getMessageCount()); -- cgit v1.2.1