summaryrefslogtreecommitdiff
path: root/cpp/src/tests/TxPublishTest.cpp
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2007-11-26 21:48:37 +0000
committerKim van der Riet <kpvdr@apache.org>2007-11-26 21:48:37 +0000
commitc598f75a71e141ca8738a4c11cd8d93dd7ae5dd3 (patch)
tree8b3431841d1f18e0b21fc69f9a286851007b15c7 /cpp/src/tests/TxPublishTest.cpp
parentacde3eb25b94333bc7772133fa24441e1771a67c (diff)
downloadqpid-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.cpp19
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());