diff options
| author | Gordon Sim <gsim@apache.org> | 2010-03-29 18:15:42 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2010-03-29 18:15:42 +0000 |
| commit | adfea171e68298b9b0ced9fe54c2232b963e077e (patch) | |
| tree | cc51faebbf79d6b1ac84360e2ad6526939912563 /cpp/src/qpid/client | |
| parent | c2b13417889ca05c880736e49bba91fb1ba4bd5d (diff) | |
| download | qpid-python-adfea171e68298b9b0ced9fe54c2232b963e077e.tar.gz | |
QPID-2406: a more explicit solution for durations in the messaging api
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@928855 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/client')
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp | 3 | ||||
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp | 2 | ||||
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp | 3 | ||||
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 5 |
4 files changed, 8 insertions, 5 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp b/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp index 8e501511e4..3f5cccfedb 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/client/SessionBase_0_10Access.h" #include "qpid/log/Statement.h" #include "qpid/messaging/Address.h" +#include "qpid/messaging/Duration.h" #include "qpid/messaging/Message.h" #include "qpid/messaging/MessageImpl.h" #include "qpid/types/Variant.h" @@ -276,7 +277,7 @@ void populateHeaders(qpid::messaging::Message& message, const MessageProperties* messageProperties) { if (deliveryProperties) { - message.setTtl(deliveryProperties->getTtl()); + message.setTtl(qpid::messaging::Duration(deliveryProperties->getTtl())); message.setDurable(deliveryProperties->getDeliveryMode() == DELIVERY_MODE_PERSISTENT); MessageImplAccess::get(message).redelivered = deliveryProperties->getRedelivered(); } diff --git a/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp b/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp index e75368cda7..d0d945b934 100644 --- a/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp +++ b/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp @@ -47,7 +47,7 @@ void OutgoingMessage::convert(const qpid::messaging::Message& from) message.getMessageProperties().setReplyTo(AddressResolution::convert(address)); } translate(from.getHeaders(), message.getMessageProperties().getApplicationHeaders()); - message.getDeliveryProperties().setTtl(from.getTtl()); + message.getDeliveryProperties().setTtl(from.getTtl().getMilliseconds()); if (from.getDurable()) { message.getDeliveryProperties().setDeliveryMode(DELIVERY_MODE_PERSISTENT); } diff --git a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp index 2f52efbceb..c3367f8ab4 100644 --- a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp @@ -30,6 +30,7 @@ namespace client { namespace amqp0_10 { using qpid::messaging::Receiver; +using qpid::messaging::Duration; void ReceiverImpl::received(qpid::messaging::Message&) { @@ -163,7 +164,7 @@ bool ReceiverImpl::fetchImpl(qpid::messaging::Message& message, qpid::messaging: } else { sync(session).messageFlush(destination); startFlow();//reallocate credit - return getImpl(message, 0); + return getImpl(message, Duration::IMMEDIATE); } } diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp index 245ec878be..209ab93909 100644 --- a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp @@ -267,8 +267,9 @@ bool SessionImpl::accept(ReceiverImpl* receiver, qpid::sys::Duration adjust(qpid::messaging::Duration timeout) { - if (timeout < (uint64_t) (qpid::sys::TIME_INFINITE/qpid::sys::TIME_MSEC)) { - return timeout * qpid::sys::TIME_MSEC; + uint64_t ms = timeout.getMilliseconds(); + if (ms < (uint64_t) (qpid::sys::TIME_INFINITE/qpid::sys::TIME_MSEC)) { + return ms * qpid::sys::TIME_MSEC; } else { return qpid::sys::TIME_INFINITE; } |
