summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Queue.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-03-10 22:48:51 +0000
committerGordon Sim <gsim@apache.org>2009-03-10 22:48:51 +0000
commitb9a77d5a5d482a7a9828f64c4d06def816997f16 (patch)
tree00e38af08e6031e713e372e2e885e253106b9c5b /cpp/src/qpid/broker/Queue.cpp
parent2d9d07806037ce5e91dd0bad53fdfbe25ca5f8b1 (diff)
downloadqpid-python-b9a77d5a5d482a7a9828f64c4d06def816997f16.tar.gz
QPID-1724: Allow replication events to be shared across multiple federations bridges.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@752290 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Queue.cpp')
-rw-r--r--cpp/src/qpid/broker/Queue.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index a1a83926bf..aa0cd8ca31 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -32,6 +32,7 @@
#include "qpid/log/Statement.h"
#include "qpid/management/ManagementBroker.h"
#include "qpid/framing/reply_exceptions.h"
+#include "qpid/framing/FieldTable.h"
#include "qpid/sys/Monitor.h"
#include "qpid/sys/Time.h"
#include "qmf/org/apache/qpid/broker/ArgsQueuePurge.h"
@@ -68,6 +69,9 @@ const std::string qpidLastValueQueueNoBrowse("qpid.last_value_queue_no_browse");
const std::string qpidPersistLastNode("qpid.persist_last_node");
const std::string qpidVQMatchProperty("qpid.LVQ_key");
const std::string qpidQueueEventGeneration("qpid.queue_event_generation");
+//following feature is not ready for general use as it doesn't handle
+//the case where a message is enqueued on more than one queue well enough:
+const std::string qpidInsertSequenceNumbers("qpid.insert_sequence_numbers");
const int ENQUEUE_ONLY=1;
const int ENQUEUE_AND_DEQUEUE=2;
@@ -774,6 +778,9 @@ void Queue::configure(const FieldTable& _settings, bool recovering)
eventMode = _settings.getAsInt(qpidQueueEventGeneration);
+ FieldTable::ValuePtr p =_settings.get(qpidInsertSequenceNumbers);
+ if (p && p->convertsTo<std::string>()) insertSequenceNumbers(p->get<std::string>());
+
if (mgmtObject != 0)
mgmtObject->set_arguments (_settings);
@@ -997,4 +1004,5 @@ void Queue::insertSequenceNumbers(const std::string& key)
{
seqNoKey = key;
insertSeqNo = !seqNoKey.empty();
+ QPID_LOG(debug, "Inserting sequence numbers as " << key);
}