summaryrefslogtreecommitdiff
path: root/cpp/lib/broker/BrokerChannel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/lib/broker/BrokerChannel.cpp')
-rw-r--r--cpp/lib/broker/BrokerChannel.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/cpp/lib/broker/BrokerChannel.cpp b/cpp/lib/broker/BrokerChannel.cpp
index c0250815e8..954eb391ea 100644
--- a/cpp/lib/broker/BrokerChannel.cpp
+++ b/cpp/lib/broker/BrokerChannel.cpp
@@ -187,6 +187,17 @@ void Channel::ConsumerImpl::requestDispatch(){
if(blocked) queue->dispatch();
}
+void Channel::handleInlineTransfer(Message::shared_ptr& msg, Exchange::shared_ptr& exch){
+ if(transactional){
+ TxPublish* deliverable = new TxPublish(msg);
+ exch->route(*deliverable, msg->getRoutingKey(), &(msg->getHeaderProperties()->getHeaders()));
+ txBuffer.enlist(new DeletingTxOp(deliverable));
+ }else{
+ DeliverableMessage deliverable(msg);
+ exch->route(deliverable, msg->getRoutingKey(), &(msg->getHeaderProperties()->getHeaders()));
+ }
+}
+
// FIXME aconway 2007-02-05: Drop exchange member, calculate from
// message in ::complete().
void Channel::handlePublish(Message* _message, Exchange::shared_ptr _exchange){