diff options
Diffstat (limited to 'cpp/src/qpid/messaging')
| -rw-r--r-- | cpp/src/qpid/messaging/MessageImpl.cpp | 13 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/MessageImpl.h | 2 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/Sender.cpp | 2 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/SenderImpl.h | 2 |
4 files changed, 17 insertions, 2 deletions
diff --git a/cpp/src/qpid/messaging/MessageImpl.cpp b/cpp/src/qpid/messaging/MessageImpl.cpp index 402a93e753..5df9218e03 100644 --- a/cpp/src/qpid/messaging/MessageImpl.cpp +++ b/cpp/src/qpid/messaging/MessageImpl.cpp @@ -126,6 +126,15 @@ void MessageImpl::encode(Codec& codec) } } +void MessageImpl::getEncodedContent(Codec& codec, std::string& out) const +{ + if (content.getType() != VAR_VOID) { + codec.encode(content, out); + } else { + out = bytes; + } +} + void MessageImpl::decode(Codec& codec) { codec.decode(bytes, content); @@ -188,5 +197,9 @@ MessageImpl& MessageImplAccess::get(Message& msg) { return *msg.impl; } +const MessageImpl& MessageImplAccess::get(const Message& msg) +{ + return *msg.impl; +} }} // namespace qpid::messaging diff --git a/cpp/src/qpid/messaging/MessageImpl.h b/cpp/src/qpid/messaging/MessageImpl.h index 3b8f103688..1173e7570a 100644 --- a/cpp/src/qpid/messaging/MessageImpl.h +++ b/cpp/src/qpid/messaging/MessageImpl.h @@ -84,6 +84,7 @@ struct MessageImpl : MessageContent void clear(); + void getEncodedContent(Codec& codec, std::string&) const; void encode(Codec& codec); void decode(Codec& codec); @@ -125,6 +126,7 @@ class Message; struct MessageImplAccess { static MessageImpl& get(Message&); + static const MessageImpl& get(const Message&); }; }} // namespace qpid::messaging diff --git a/cpp/src/qpid/messaging/Sender.cpp b/cpp/src/qpid/messaging/Sender.cpp index 12a3a8eb0f..8db700b060 100644 --- a/cpp/src/qpid/messaging/Sender.cpp +++ b/cpp/src/qpid/messaging/Sender.cpp @@ -38,7 +38,7 @@ Sender::Sender(SenderImpl* impl) { PI::ctor(*this, impl); } Sender::Sender(const Sender& s) : qpid::client::Handle<SenderImpl>() { PI::copy(*this, s); } Sender::~Sender() { PI::dtor(*this); } Sender& Sender::operator=(const Sender& s) { return PI::assign(*this, s); } -void Sender::send(Message& message) { impl->send(message); } +void Sender::send(const Message& message) { impl->send(message); } void Sender::cancel() { impl->cancel(); } }} // namespace qpid::messaging diff --git a/cpp/src/qpid/messaging/SenderImpl.h b/cpp/src/qpid/messaging/SenderImpl.h index 3b61a37423..77d2cfaeaf 100644 --- a/cpp/src/qpid/messaging/SenderImpl.h +++ b/cpp/src/qpid/messaging/SenderImpl.h @@ -35,7 +35,7 @@ class SenderImpl : public virtual qpid::RefCounted { public: virtual ~SenderImpl() {} - virtual void send(Message& message) = 0; + virtual void send(const Message& message) = 0; virtual void cancel() = 0; private: }; |
