From 4336a5575fbf984a58dcbd0564463843e615a7c7 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Tue, 3 Apr 2007 18:50:43 +0000 Subject: * cpp/src/broker/Broker.cpp: Join cleaner thread. * cpp/src/broker/BrokerMessageMessage.h, .cpp, ReferenceTest: - Broke reference cycle between broker::MessageMessage and Reference by using a weak_ptr in MessageMessage git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@525244 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/broker/BrokerMessageMessage.h | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'cpp/src/broker/BrokerMessageMessage.h') diff --git a/cpp/src/broker/BrokerMessageMessage.h b/cpp/src/broker/BrokerMessageMessage.h index 88ac07ecc3..31962d5879 100644 --- a/cpp/src/broker/BrokerMessageMessage.h +++ b/cpp/src/broker/BrokerMessageMessage.h @@ -24,7 +24,7 @@ #include "BrokerMessageBase.h" #include "MessageTransferBody.h" #include "../framing/amqp_types.h" - +#include #include namespace qpid { @@ -42,16 +42,16 @@ class MessageMessage: public Message{ typedef boost::shared_ptr shared_ptr; typedef boost::shared_ptr TransferPtr; typedef boost::shared_ptr ReferencePtr; - + MessageMessage(ConnectionToken* publisher, framing::RequestId, TransferPtr transfer); MessageMessage(ConnectionToken* publisher, framing::RequestId, TransferPtr transfer, ReferencePtr reference); MessageMessage(); // Default destructor okay - framing::RequestId getRequestId() {return requestId; } - TransferPtr getTransfer() { return transfer; } - ReferencePtr getReference() { return reference; } + framing::RequestId getRequestId() const {return requestId; } + TransferPtr getTransfer() const { return transfer; } + ReferencePtr getReference() const ; void deliver(framing::ChannelAdapter& channel, const std::string& consumerTag, @@ -81,16 +81,19 @@ class MessageMessage: public Message{ void decodeContent(framing::Buffer& buffer, uint32_t contentChunkSize = 0); private: - void transferMessage(framing::ChannelAdapter& channel, - const std::string& consumerTag, - uint32_t framesize); - framing::MessageTransferBody* copyTransfer(const framing::ProtocolVersion& version, - const std::string& destination, - const framing::Content& body) const; + void transferMessage( + framing::ChannelAdapter& channel, + const std::string& consumerTag, + uint32_t framesize); + + framing::MessageTransferBody* copyTransfer( + const framing::ProtocolVersion& version, + const std::string& destination, + const framing::Content& body) const; framing::RequestId requestId; const TransferPtr transfer; - const ReferencePtr reference; + const boost::weak_ptr reference; }; }} -- cgit v1.2.1