summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Queue.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-05-27 14:23:49 +0000
committerGordon Sim <gsim@apache.org>2009-05-27 14:23:49 +0000
commit8a1ff59c51e82a447037cfb9d8e23b1794ad2dcb (patch)
treef8f8f8ac68198a9c0a54036eb662c82b863ac4c2 /cpp/src/qpid/broker/Queue.cpp
parentcc950c29b060874322441853975a7340b608fc00 (diff)
downloadqpid-python-8a1ff59c51e82a447037cfb9d8e23b1794ad2dcb.tar.gz
QPID-1488: Ensure policy state (+ store state & mgmt stats) are accurate on newly joined nodes by informing
the queue of any logically enqueued messages that are currently acquired (but not accepted or released). QPID-1873: Ensure that the various properties of a queue (durability, exclusivity etc) are correctly replicated to new cluster members. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@779183 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Queue.cpp')
-rw-r--r--cpp/src/qpid/broker/Queue.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index 6930275361..bbdbf19e92 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -1006,3 +1006,16 @@ void Queue::insertSequenceNumbers(const std::string& key)
insertSeqNo = !seqNoKey.empty();
QPID_LOG(debug, "Inserting sequence numbers as " << key);
}
+
+void Queue::enqueued(const QueuedMessage& m)
+{
+ if (m.payload) {
+ if (policy.get()) policy->tryEnqueue(m);
+ mgntEnqStats(m.payload);
+ if (m.payload->isPersistent()) {
+ enqueue ( 0, m.payload );
+ }
+ } else {
+ QPID_LOG(warning, "Queue informed of enqueued message that has no payload");
+ }
+}