summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Queue.cpp
diff options
context:
space:
mode:
authorCarl C. Trieloff <cctrieloff@apache.org>2007-11-08 18:46:53 +0000
committerCarl C. Trieloff <cctrieloff@apache.org>2007-11-08 18:46:53 +0000
commitd9ba9eae91290581b62f67239300897a96827e83 (patch)
tree67ea6a18828a42cafea5fce43b36b8b5f7c5becf /cpp/src/qpid/broker/Queue.cpp
parent10a794c9d2fede2a0db9cf80e95f19d56e931196 (diff)
downloadqpid-python-d9ba9eae91290581b62f67239300897a96827e83.tar.gz
- enable the ability to lazy load from async store
- the ci has a raw ptr for Queue in QueuedMessage, if any has any concerns, ping me and I will convert it to an auto_ptr Carl. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@593251 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Queue.cpp')
-rw-r--r--cpp/src/qpid/broker/Queue.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index 1484fe464e..5745c85331 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -212,7 +212,7 @@ bool Queue::getNextMessage(QueuedMessage& msg)
void Queue::dispatch()
{
- QueuedMessage msg;
+ QueuedMessage msg(this);
while (getNextMessage(msg) && msg.payload->isEnqueueComplete()){
if (dispatch(msg)) {
pop();
@@ -242,7 +242,7 @@ void Queue::serviceAllBrowsers()
void Queue::serviceBrowser(Consumer::ptr browser)
{
- QueuedMessage msg;
+ QueuedMessage msg(this);
while (seek(msg, browser->position) && browser->deliver(msg)) {
browser->position = msg.position;
}
@@ -318,7 +318,7 @@ void Queue::cancel(Consumer::ptr c, Consumers& consumers)
QueuedMessage Queue::dequeue(){
Mutex::ScopedLock locker(messageLock);
- QueuedMessage msg;
+ QueuedMessage msg(this);
if(!messages.empty()){
msg = messages.front();
@@ -350,7 +350,7 @@ void Queue::pop(){
void Queue::push(Message::shared_ptr& msg){
Mutex::ScopedLock locker(messageLock);
- messages.push_back(QueuedMessage(msg, ++sequence));
+ messages.push_back(QueuedMessage(this, msg, ++sequence));
if (policy.get()) {
policy->enqueued(msg->contentSize());
if (policy->limitExceeded()) {