diff options
author | Kim van der Riet <kpvdr@apache.org> | 2007-11-26 21:48:37 +0000 |
---|---|---|
committer | Kim van der Riet <kpvdr@apache.org> | 2007-11-26 21:48:37 +0000 |
commit | c598f75a71e141ca8738a4c11cd8d93dd7ae5dd3 (patch) | |
tree | 8b3431841d1f18e0b21fc69f9a286851007b15c7 /cpp/src/tests/TxPublishTest.cpp | |
parent | acde3eb25b94333bc7772133fa24441e1771a67c (diff) | |
download | qpid-python-c598f75a71e141ca8738a4c11cd8d93dd7ae5dd3.tar.gz |
Switched all regular PersistentMessage* and PersistentMessage& to intrusive_ptr<PersistentMessage>, 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
Diffstat (limited to 'cpp/src/tests/TxPublishTest.cpp')
-rw-r--r-- | cpp/src/tests/TxPublishTest.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
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<string, PersistableMessage*> msg_queue_pair; + typedef std::pair<string, intrusive_ptr<PersistableMessage> > msg_queue_pair; class TestMessageStore : public NullMessageStore { public: vector<msg_queue_pair> enqueued; - void enqueue(TransactionContext*, PersistableMessage& msg, const PersistableQueue& queue) + void enqueue(TransactionContext*, intrusive_ptr<PersistableMessage>& 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<PersistableMessage> pmsg = static_pointer_cast<PersistableMessage>(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<PersistableMessage>(msg))->isEnqueueComplete()); } void testCommit() @@ -101,7 +100,7 @@ public: CPPUNIT_ASSERT_EQUAL((uint32_t) 1, queue1->getMessageCount()); intrusive_ptr<Message> msg_dequeue = queue1->dequeue().payload; - CPPUNIT_ASSERT_EQUAL( true, ((PersistableMessage*) msg_dequeue.get())->isEnqueueComplete()); + CPPUNIT_ASSERT_EQUAL( true, (static_pointer_cast<PersistableMessage>(msg_dequeue))->isEnqueueComplete()); CPPUNIT_ASSERT_EQUAL(msg, msg_dequeue); CPPUNIT_ASSERT_EQUAL((uint32_t) 1, queue2->getMessageCount()); |