summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2011-09-06 21:46:50 +0000
committerAlan Conway <aconway@apache.org>2011-09-06 21:46:50 +0000
commitb9ec1a2c27438bf1deeb550e013920bf112caef8 (patch)
tree722447a047bab383c6f1a2c0962f3ccf8a07859c
parent8f0971791a2ecac29d0177172b1f37bb6fd1f89f (diff)
downloadqpid-python-b9ec1a2c27438bf1deeb550e013920bf112caef8.tar.gz
QPID-2920: add conveniece function to multicast AMQBodys directly.
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/qpid-2920-1@1165883 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp8
-rw-r--r--qpid/cpp/src/qpid/cluster/exp/Multicaster.h7
2 files changed, 14 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp b/qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp
index cf8703ca59..427c25093a 100644
--- a/qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp
+++ b/qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp
@@ -22,6 +22,9 @@
#include "Multicaster.h"
#include "qpid/cluster/Cpg.h"
#include "qpid/log/Statement.h"
+#include "qpid/framing/AMQBody.h"
+#include "qpid/framing/AMQDataBlock.h"
+#include "qpid/framing/AMQFrame.h"
namespace qpid {
namespace cluster {
@@ -55,6 +58,11 @@ void Multicaster::mcast(const framing::AMQDataBlock& data) {
queue.push(bufRef);
}
+void Multicaster::mcast(const framing::AMQBody& body) {
+ framing::AMQFrame f(body);
+ mcast(f);
+}
+
Multicaster::PollableEventQueue::Batch::const_iterator
Multicaster::sendMcast(const PollableEventQueue::Batch& buffers) {
try {
diff --git a/qpid/cpp/src/qpid/cluster/exp/Multicaster.h b/qpid/cpp/src/qpid/cluster/exp/Multicaster.h
index a363eb5a0b..5d6885a02b 100644
--- a/qpid/cpp/src/qpid/cluster/exp/Multicaster.h
+++ b/qpid/cpp/src/qpid/cluster/exp/Multicaster.h
@@ -23,12 +23,16 @@
*/
#include "BufferFactory.h"
-#include "qpid/framing/AMQDataBlock.h"
#include "qpid/sys/PollableQueue.h"
#include <sys/uio.h> // For struct iovec
namespace qpid {
+namespace framing {
+class AMQDataBlock;
+class AMQBody;
+}
+
namespace sys {
class Poller;
}
@@ -50,6 +54,7 @@ class Multicaster
/** Multicast an event */
void mcast(const framing::AMQDataBlock&);
+ void mcast(const framing::AMQBody&);
private:
typedef sys::PollableQueue<BufferRef> PollableEventQueue;