summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/BrokerQueue.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/BrokerQueue.h')
-rw-r--r--cpp/src/qpid/broker/BrokerQueue.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/BrokerQueue.h b/cpp/src/qpid/broker/BrokerQueue.h
index d15b5fc8c5..4b6070d11c 100644
--- a/cpp/src/qpid/broker/BrokerQueue.h
+++ b/cpp/src/qpid/broker/BrokerQueue.h
@@ -68,7 +68,8 @@ namespace qpid {
const bool autodelete;
MessageStore* const store;
const ConnectionToken* const owner;
- Consumers consumers;
+ Consumers acquirers;
+ Consumers browsers;
Messages messages;
int next;
mutable qpid::sys::RWlock consumerLock;
@@ -91,6 +92,8 @@ namespace qpid {
* only called by serilizer
*/
void dispatch();
+ void cancel(Consumer* c, Consumers& set);
+ void serviceBrowser(Consumer* c);
protected:
/**
@@ -114,6 +117,9 @@ namespace qpid {
void destroy();
void bound(const string& exchange, const string& key, const qpid::framing::FieldTable& args);
void unbind(ExchangeRegistry& exchanges, Queue::shared_ptr shared_ref);
+
+ bool acquire(const QueuedMessage& msg);
+
/**
* Delivers a message to the queue. Will record it as
* enqueued if persistent then process it.
@@ -141,7 +147,7 @@ namespace qpid {
* at any time, so this call schedules the despatch based on
* the serilizer policy.
*/
- void requestDispatch();
+ void requestDispatch(Consumer* c = 0, bool sync = false);
void consume(Consumer* c, bool exclusive = false);
void cancel(Consumer* c);
uint32_t purge();