summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Consumer.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/Consumer.h')
-rw-r--r--cpp/src/qpid/broker/Consumer.h31
1 files changed, 26 insertions, 5 deletions
diff --git a/cpp/src/qpid/broker/Consumer.h b/cpp/src/qpid/broker/Consumer.h
index 647f082e44..682c75ed4f 100644
--- a/cpp/src/qpid/broker/Consumer.h
+++ b/cpp/src/qpid/broker/Consumer.h
@@ -7,9 +7,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -31,10 +31,15 @@ namespace broker {
class Queue;
class QueueListeners;
-class Consumer {
+/**
+ * Base class for consumers which represent a subscription to a queue.
+ */
+class Consumer
+{
const bool acquires;
- // inListeners allows QueueListeners to efficiently track if this instance is registered
- // for notifications without having to search its containers
+ // inListeners allows QueueListeners to efficiently track if this
+ // instance is registered for notifications without having to
+ // search its containers
bool inListeners;
// the name is generated by broker and is unique within broker scope. It is not
// provided or known by the remote Consumer.
@@ -59,6 +64,22 @@ class Consumer {
virtual OwnershipToken* getSession() = 0;
virtual void cancel() = 0;
+ /** Returns true if the browser wants acquired as well as
+ * available messages.
+ */
+ virtual bool browseAcquired() const { return false; };
+
+ /** Called when the peer has acknowledged receipt of the message.
+ * Not to be confused with accept() above, which is asking if
+ * this consumer will consume/browse the message.
+ */
+ virtual void acknowledged(const QueuedMessage&) = 0;
+
+ /** Called if queue has been deleted, if true suppress the error message.
+ * Used by HA ReplicatingSubscriptions where such errors are normal.
+ */
+ virtual bool hideDeletedError() { return false; }
+
protected:
framing::SequenceNumber position;