diff options
Diffstat (limited to 'cpp/src/qpid/broker/BrokerQueue.h')
| -rw-r--r-- | cpp/src/qpid/broker/BrokerQueue.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/BrokerQueue.h b/cpp/src/qpid/broker/BrokerQueue.h index 35ffe2bc13..e39e58d35d 100644 --- a/cpp/src/qpid/broker/BrokerQueue.h +++ b/cpp/src/qpid/broker/BrokerQueue.h @@ -23,7 +23,7 @@ */ #include <vector> #include <memory> -#include <queue> +#include <deque> #include <boost/shared_ptr.hpp> #include "qpid/framing/amqp_types.h" #include "ConnectionToken.h" @@ -57,7 +57,7 @@ namespace qpid { */ class Queue : public PersistableQueue{ typedef std::vector<Consumer*> Consumers; - typedef std::queue<Message::shared_ptr> Messages; + typedef std::deque<Message::shared_ptr> Messages; const string name; const bool autodelete; @@ -109,6 +109,13 @@ namespace qpid { */ void process(Message::shared_ptr& msg); /** + * Returns a message to the in-memory queue (due to lack + * of acknowledegement from a receiver). If a consumer is + * available it will be dispatched immediately, else it + * will be returned to the front of the queue. + */ + void requeue(Message::shared_ptr& msg); + /** * Used during recovery to add stored messages back to the queue */ void recover(Message::shared_ptr& msg); |
