summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/messaging
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/messaging')
-rw-r--r--cpp/src/qpid/messaging/MessageImpl.cpp13
-rw-r--r--cpp/src/qpid/messaging/MessageImpl.h2
-rw-r--r--cpp/src/qpid/messaging/Sender.cpp2
-rw-r--r--cpp/src/qpid/messaging/SenderImpl.h2
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:
};