From b7c4bf711917dc5ae07fafea32d9d530d2383735 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Wed, 14 Nov 2007 21:02:14 +0000 Subject: Replaced shared_ptr with intrusive_ptr for qpid::Broker::Message. Gives 9% reduction in broker heap use (perftest --count 100000.) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@595056 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/tests/QueueTest.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'cpp/src/tests/QueueTest.cpp') diff --git a/cpp/src/tests/QueueTest.cpp b/cpp/src/tests/QueueTest.cpp index 3235fe2418..2d84d23b6f 100644 --- a/cpp/src/tests/QueueTest.cpp +++ b/cpp/src/tests/QueueTest.cpp @@ -38,7 +38,7 @@ class TestConsumer : public virtual Consumer{ public: typedef shared_ptr shared_ptr; - Message::shared_ptr last; + intrusive_ptr last; bool received; TestConsumer(): received(false) {}; @@ -71,8 +71,8 @@ class QueueTest : public CppUnit::TestCase public: - Message::shared_ptr message(std::string exchange, std::string routingKey) { - Message::shared_ptr msg(new Message()); + intrusive_ptr message(std::string exchange, std::string routingKey) { + intrusive_ptr msg(new Message()); AMQFrame method(0, MessageTransferBody(ProtocolVersion(), 0, exchange, 0, 0)); AMQFrame header(0, AMQHeaderBody()); msg->getFrames().append(method); @@ -85,14 +85,14 @@ class QueueTest : public CppUnit::TestCase void testAsyncMessage(){ Queue::shared_ptr queue(new Queue("my_test_queue", true)); - Message::shared_ptr received; + intrusive_ptr received; TestConsumer::shared_ptr c1(new TestConsumer()); queue->consume(c1); //Test basic delivery: - Message::shared_ptr msg1 = message("e", "A"); + intrusive_ptr msg1 = message("e", "A"); msg1->enqueueAsync();//this is done on enqueue which is not called from process queue->process(msg1); sleep(2); @@ -109,7 +109,7 @@ class QueueTest : public CppUnit::TestCase void testAsyncMessageCount(){ Queue::shared_ptr queue(new Queue("my_test_queue", true)); - Message::shared_ptr msg1 = message("e", "A"); + intrusive_ptr msg1 = message("e", "A"); msg1->enqueueAsync();//this is done on enqueue which is not called from process queue->process(msg1); @@ -134,9 +134,9 @@ class QueueTest : public CppUnit::TestCase CPPUNIT_ASSERT_EQUAL(uint32_t(2), queue->getConsumerCount()); //Test basic delivery: - Message::shared_ptr msg1 = message("e", "A"); - Message::shared_ptr msg2 = message("e", "B"); - Message::shared_ptr msg3 = message("e", "C"); + intrusive_ptr msg1 = message("e", "A"); + intrusive_ptr msg2 = message("e", "B"); + intrusive_ptr msg3 = message("e", "C"); queue->deliver(msg1); if (!c1->received) @@ -183,10 +183,10 @@ class QueueTest : public CppUnit::TestCase void testDequeue(){ Queue::shared_ptr queue(new Queue("my_queue", true)); - Message::shared_ptr msg1 = message("e", "A"); - Message::shared_ptr msg2 = message("e", "B"); - Message::shared_ptr msg3 = message("e", "C"); - Message::shared_ptr received; + intrusive_ptr msg1 = message("e", "A"); + intrusive_ptr msg2 = message("e", "B"); + intrusive_ptr msg3 = message("e", "C"); + intrusive_ptr received; queue->deliver(msg1); queue->deliver(msg2); -- cgit v1.2.1