From 80406d0fb680239a0141b81fb0b9f20d20c9b1e1 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Fri, 27 Jul 2007 15:44:52 +0000 Subject: Use execution layer to acknowledge messages. Turn off 0-9 framing of requests and responses. Some refactoring around message delivery. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@560285 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/BrokerMessageMessage.cpp | 29 +++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'cpp/src/qpid/broker/BrokerMessageMessage.cpp') diff --git a/cpp/src/qpid/broker/BrokerMessageMessage.cpp b/cpp/src/qpid/broker/BrokerMessageMessage.cpp index efa295e44f..8e8eaf23f0 100644 --- a/cpp/src/qpid/broker/BrokerMessageMessage.cpp +++ b/cpp/src/qpid/broker/BrokerMessageMessage.cpp @@ -34,10 +34,18 @@ #include using namespace std; +using namespace boost; using namespace qpid::framing; namespace qpid { namespace broker { + +struct MessageDeliveryToken : public DeliveryToken +{ + const std::string destination; + + MessageDeliveryToken(const std::string& d) : destination(d) {} +}; MessageMessage::MessageMessage( ConnectionToken* publisher, RequestId requestId_, TransferPtr transfer_ @@ -179,22 +187,13 @@ void MessageMessage::transferMessage( channel.send(make_shared_ptr(new MessageCloseBody(channel.getVersion(), ref->getId()))); } -void MessageMessage::deliver( - framing::ChannelAdapter& channel, - const std::string& consumerTag, - uint64_t /*deliveryTag*/, - uint32_t framesize) + +void MessageMessage::deliver(ChannelAdapter& channel, uint64_t, DeliveryToken::shared_ptr token, uint32_t framesize) { - transferMessage(channel, consumerTag, framesize); + transferMessage(channel, shared_polymorphic_cast(token)->destination, framesize); } -void MessageMessage::sendGetOk( - framing::ChannelAdapter& channel, - const std::string& destination, - uint32_t /*messageCount*/, - uint64_t /*responseTo*/, - uint64_t /*deliveryTag*/, - uint32_t framesize) +void MessageMessage::deliver(ChannelAdapter& channel, const std::string& destination, uint32_t framesize) { transferMessage(channel, destination, framesize); } @@ -321,6 +320,10 @@ MessageMessage::ReferencePtr MessageMessage::getReference() const { return reference; } +DeliveryToken::shared_ptr MessageMessage::getToken(const std::string& destination) +{ + return DeliveryToken::shared_ptr(new MessageDeliveryToken(destination)); +} }} // namespace qpid::broker -- cgit v1.2.1