diff options
Diffstat (limited to 'cpp/src/qpid/broker/Consumer.h')
-rw-r--r-- | cpp/src/qpid/broker/Consumer.h | 31 |
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; |