diff options
Diffstat (limited to 'cpp/src/qpid/client')
-rw-r--r-- | cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp | 7 | ||||
-rw-r--r-- | cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 12 |
2 files changed, 7 insertions, 12 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp b/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp index b69c1917e6..f9bd355a78 100644 --- a/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp +++ b/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp @@ -26,6 +26,7 @@ #include "qpid/log/Statement.h" #include "qpid/messaging/Address.h" #include "qpid/messaging/Message.h" +#include "qpid/messaging/MessageImpl.h" #include "qpid/messaging/Variant.h" #include "qpid/framing/DeliveryProperties.h" #include "qpid/framing/FrameSet.h" @@ -41,6 +42,7 @@ using namespace qpid::framing; using namespace qpid::framing::message; using qpid::sys::AbsTime; using qpid::sys::Duration; +using qpid::messaging::MessageImplAccess; using qpid::messaging::Variant; namespace { @@ -219,9 +221,8 @@ void populateHeaders(qpid::messaging::Message& message, const AMQHeaderBody* hea void populate(qpid::messaging::Message& message, FrameSet& command) { //need to be able to link the message back to the transfer it was delivered by - //e.g. for rejecting. TODO: hide this from API - uint32_t commandId = command.getId(); - message.setInternalId(reinterpret_cast<void*>(commandId)); + //e.g. for rejecting. + MessageImplAccess::get(message).setInternalId(command.getId()); command.getContent(message.getBytes()); diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp index 9ea2a9f598..e069520e95 100644 --- a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp @@ -29,6 +29,7 @@ #include "qpid/messaging/Address.h" #include "qpid/messaging/Filter.h" #include "qpid/messaging/Message.h" +#include "qpid/messaging/MessageImpl.h" #include "qpid/messaging/MessageListener.h" #include "qpid/messaging/Sender.h" #include "qpid/messaging/Receiver.h" @@ -39,6 +40,7 @@ #include <boost/intrusive_ptr.hpp> using qpid::messaging::Filter; +using qpid::messaging::MessageImplAccess; using qpid::messaging::Sender; using qpid::messaging::Receiver; using qpid::messaging::VariantMap; @@ -78,16 +80,8 @@ void SessionImpl::acknowledge() void SessionImpl::reject(qpid::messaging::Message& m) { qpid::sys::Mutex::ScopedLock l(lock); - //TODO: how do I get the id of the original transfer command? think this through some more... - - // [tross] The following hack was added to get this code to compile on a 64-bit machine. - // It should be functionally equivalent to the original on a 32-bit architecture - // but is almost certainly not what was intended by the author. - uint64_t rawId(reinterpret_cast<uint64_t>(m.getInternalId())); - SequenceNumber id((uint32_t) ((rawId & 0xFFFFFFFF) ^ ((rawId >> 32) & 0xFFFFFFFF))); - SequenceSet set; - set.add(id); + set.add(MessageImplAccess::get(m).getInternalId()); session.messageReject(set); } |