diff options
| author | Alan Conway <aconway@apache.org> | 2007-11-14 21:02:14 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2007-11-14 21:02:14 +0000 |
| commit | b7c4bf711917dc5ae07fafea32d9d530d2383735 (patch) | |
| tree | d187fc43d3d0a2153d1b8c2a5ab3e55261285e9d /cpp/src/qpid/broker/Queue.h | |
| parent | 30e952c5e9e7084eb70633a543034fbc897a22b8 (diff) | |
| download | qpid-python-b7c4bf711917dc5ae07fafea32d9d530d2383735.tar.gz | |
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
Diffstat (limited to 'cpp/src/qpid/broker/Queue.h')
| -rw-r--r-- | cpp/src/qpid/broker/Queue.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/cpp/src/qpid/broker/Queue.h b/cpp/src/qpid/broker/Queue.h index 9eca31e4fc..9a7b893f36 100644 --- a/cpp/src/qpid/broker/Queue.h +++ b/cpp/src/qpid/broker/Queue.h @@ -99,7 +99,7 @@ namespace qpid { management::Queue::shared_ptr mgmtObject; void pop(); - void push(Message::shared_ptr& msg); + void push(intrusive_ptr<Message>& msg); bool dispatch(QueuedMessage& msg); void setPolicy(std::auto_ptr<QueuePolicy> policy); /** @@ -113,7 +113,7 @@ namespace qpid { bool seek(QueuedMessage& msg, const framing::SequenceNumber& position); uint32_t getAcquirerCount() const; bool getNextMessage(QueuedMessage& msg); - bool exclude(Message::shared_ptr msg); + bool exclude(intrusive_ptr<Message> msg); public: @@ -140,12 +140,12 @@ namespace qpid { * Delivers a message to the queue. Will record it as * enqueued if persistent then process it. */ - void deliver(Message::shared_ptr& msg); + void deliver(intrusive_ptr<Message>& msg); /** * Dispatches the messages immediately to a consumer if * one is available or stores it for later if not. */ - void process(Message::shared_ptr& msg); + void process(intrusive_ptr<Message>& msg); /** * Returns a message to the in-memory queue (due to lack * of acknowledegement from a receiver). If a consumer is @@ -156,7 +156,7 @@ namespace qpid { /** * Used during recovery to add stored messages back to the queue */ - void recover(Message::shared_ptr& msg); + void recover(intrusive_ptr<Message>& msg); /** * Request dispatch any queued messages providing there are * consumers for them. Only one thread can be dispatching @@ -181,11 +181,11 @@ namespace qpid { inline bool isAutoDelete() const { return autodelete; } bool canAutoDelete() const; - bool enqueue(TransactionContext* ctxt, Message::shared_ptr msg); + bool enqueue(TransactionContext* ctxt, intrusive_ptr<Message> msg); /** * dequeue from store (only done once messages is acknowledged) */ - bool dequeue(TransactionContext* ctxt, Message::shared_ptr msg); + bool dequeue(TransactionContext* ctxt, intrusive_ptr<Message> msg); /** * dequeues from memory only */ |
