summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Queue.h
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-02-12 11:43:51 +0000
committerGordon Sim <gsim@apache.org>2009-02-12 11:43:51 +0000
commit3f7745fb58b028058a860d7e95f308404728f09f (patch)
treedd28c178bed1a4f38dbb05e755cee7448e87600c /cpp/src/qpid/broker/Queue.h
parent30072b3b418ab9b0af293482878591b7beb6e9bf (diff)
downloadqpid-python-3f7745fb58b028058a860d7e95f308404728f09f.tar.gz
QPID-1660: If selected consumer can't take a message, ensure others are notified of message availability.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743694 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Queue.h')
-rw-r--r--cpp/src/qpid/broker/Queue.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/Queue.h b/cpp/src/qpid/broker/Queue.h
index e4bcded8bd..61fbd45de8 100644
--- a/cpp/src/qpid/broker/Queue.h
+++ b/cpp/src/qpid/broker/Queue.h
@@ -68,6 +68,7 @@ namespace qpid {
typedef std::deque<QueuedMessage> Messages;
typedef std::map<string,boost::intrusive_ptr<Message> > LVQ;
+ enum ConsumeCode {NO_MESSAGES=0, CANT_CONSUME=1, CONSUMED=2};
const string name;
const bool autodelete;
@@ -104,8 +105,9 @@ namespace qpid {
void setPolicy(std::auto_ptr<QueuePolicy> policy);
bool seek(QueuedMessage& msg, Consumer::shared_ptr position);
bool getNextMessage(QueuedMessage& msg, Consumer::shared_ptr c);
- bool consumeNextMessage(QueuedMessage& msg, Consumer::shared_ptr c);
+ ConsumeCode consumeNextMessage(QueuedMessage& msg, Consumer::shared_ptr c);
bool browseNextMessage(QueuedMessage& msg, Consumer::shared_ptr c);
+ void notifyListener();
void removeListener(Consumer::shared_ptr);