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.h11
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);