diff options
| author | Gordon Sim <gsim@apache.org> | 2010-03-03 17:06:44 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2010-03-03 17:06:44 +0000 |
| commit | 2a71aa199010c48608f6d63794f52ad2e7afede5 (patch) | |
| tree | c75a9248e0ced59974bde18a73f5237f5efb8446 /cpp/src/qpid | |
| parent | 589def015a6567ecb7be9fe2af0ebec662cea56c (diff) | |
| download | qpid-python-2a71aa199010c48608f6d63794f52ad2e7afede5.tar.gz | |
QPID-2402 & QPID-2406: Documented the units for the ttl property of Message. Eliminated use of qpid::sys::Duration from API.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@918575 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid')
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp | 12 | ||||
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/ReceiverImpl.h | 22 | ||||
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 21 | ||||
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/SessionImpl.h | 9 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/Message.cpp | 4 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/Receiver.cpp | 8 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/ReceiverImpl.h | 9 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/Session.cpp | 4 | ||||
| -rw-r--r-- | cpp/src/qpid/messaging/SessionImpl.h | 6 |
9 files changed, 52 insertions, 43 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp index 1f5c3162e5..e24f2ba5b4 100644 --- a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp @@ -40,28 +40,28 @@ void ReceiverImpl::received(qpid::messaging::Message&) } } -qpid::messaging::Message ReceiverImpl::get(qpid::sys::Duration timeout) +qpid::messaging::Message ReceiverImpl::get(qpid::messaging::Duration timeout) { qpid::messaging::Message result; if (!get(result, timeout)) throw Receiver::NoMessageAvailable(); return result; } -qpid::messaging::Message ReceiverImpl::fetch(qpid::sys::Duration timeout) +qpid::messaging::Message ReceiverImpl::fetch(qpid::messaging::Duration timeout) { qpid::messaging::Message result; if (!fetch(result, timeout)) throw Receiver::NoMessageAvailable(); return result; } -bool ReceiverImpl::get(qpid::messaging::Message& message, qpid::sys::Duration timeout) +bool ReceiverImpl::get(qpid::messaging::Message& message, qpid::messaging::Duration timeout) { Get f(*this, message, timeout); while (!parent.execute(f)) {} return f.result; } -bool ReceiverImpl::fetch(qpid::messaging::Message& message, qpid::sys::Duration timeout) +bool ReceiverImpl::fetch(qpid::messaging::Message& message, qpid::messaging::Duration timeout) { Fetch f(*this, message, timeout); while (!parent.execute(f)) {} @@ -143,12 +143,12 @@ ReceiverImpl::ReceiverImpl(SessionImpl& p, const std::string& name, parent(p), destination(name), address(a), byteCredit(0xFFFFFFFF), state(UNRESOLVED), capacity(0), window(0) {} -bool ReceiverImpl::getImpl(qpid::messaging::Message& message, qpid::sys::Duration timeout) +bool ReceiverImpl::getImpl(qpid::messaging::Message& message, qpid::messaging::Duration timeout) { return parent.get(*this, message, timeout); } -bool ReceiverImpl::fetchImpl(qpid::messaging::Message& message, qpid::sys::Duration timeout) +bool ReceiverImpl::fetchImpl(qpid::messaging::Message& message, qpid::messaging::Duration timeout) { if (state == CANCELLED) return false;//TODO: or should this be an error? diff --git a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h index 0dcca3ac07..38aa125ec6 100644 --- a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h +++ b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h @@ -27,7 +27,7 @@ #include "qpid/messaging/Variant.h" #include "qpid/client/AsyncSession.h" #include "qpid/client/amqp0_10/SessionImpl.h" -#include "qpid/sys/Time.h" +#include "qpid/messaging/Duration.h" #include <memory> namespace qpid { @@ -50,10 +50,10 @@ class ReceiverImpl : public qpid::messaging::ReceiverImpl const qpid::messaging::Address& address); void init(qpid::client::AsyncSession session, AddressResolution& resolver); - bool get(qpid::messaging::Message& message, qpid::sys::Duration timeout); - qpid::messaging::Message get(qpid::sys::Duration timeout); - bool fetch(qpid::messaging::Message& message, qpid::sys::Duration timeout); - qpid::messaging::Message fetch(qpid::sys::Duration timeout); + bool get(qpid::messaging::Message& message, qpid::messaging::Duration timeout); + qpid::messaging::Message get(qpid::messaging::Duration timeout); + bool fetch(qpid::messaging::Message& message, qpid::messaging::Duration timeout); + qpid::messaging::Message fetch(qpid::messaging::Duration timeout); void close(); void start(); void stop(); @@ -79,8 +79,8 @@ class ReceiverImpl : public qpid::messaging::ReceiverImpl void startFlow(); //implementation of public facing methods - bool fetchImpl(qpid::messaging::Message& message, qpid::sys::Duration timeout); - bool getImpl(qpid::messaging::Message& message, qpid::sys::Duration timeout); + bool fetchImpl(qpid::messaging::Message& message, qpid::messaging::Duration timeout); + bool getImpl(qpid::messaging::Message& message, qpid::messaging::Duration timeout); void closeImpl(); void setCapacityImpl(uint32_t); @@ -96,10 +96,10 @@ class ReceiverImpl : public qpid::messaging::ReceiverImpl struct Get : Command { qpid::messaging::Message& message; - qpid::sys::Duration timeout; + qpid::messaging::Duration timeout; bool result; - Get(ReceiverImpl& i, qpid::messaging::Message& m, qpid::sys::Duration t) : + Get(ReceiverImpl& i, qpid::messaging::Message& m, qpid::messaging::Duration t) : Command(i), message(m), timeout(t), result(false) {} void operator()() { result = impl.getImpl(message, timeout); } }; @@ -107,10 +107,10 @@ class ReceiverImpl : public qpid::messaging::ReceiverImpl struct Fetch : Command { qpid::messaging::Message& message; - qpid::sys::Duration timeout; + qpid::messaging::Duration timeout; bool result; - Fetch(ReceiverImpl& i, qpid::messaging::Message& m, qpid::sys::Duration t) : + Fetch(ReceiverImpl& i, qpid::messaging::Message& m, qpid::messaging::Duration t) : Command(i), message(m), timeout(t), result(false) {} void operator()() { result = impl.fetchImpl(message, timeout); } }; diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp index 62af6394b0..9823dba6e1 100644 --- a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp @@ -266,24 +266,33 @@ bool SessionImpl::accept(ReceiverImpl* receiver, } } -bool SessionImpl::getIncoming(IncomingMessages::Handler& handler, qpid::sys::Duration timeout) +qpid::sys::Duration adjust(qpid::messaging::Duration timeout) { - return incoming.get(handler, timeout); + if (timeout < (uint64_t) (qpid::sys::TIME_INFINITE/qpid::sys::TIME_MSEC)) { + return timeout * qpid::sys::TIME_MSEC; + } else { + return qpid::sys::TIME_INFINITE; + } +} + +bool SessionImpl::getIncoming(IncomingMessages::Handler& handler, qpid::messaging::Duration timeout) +{ + return incoming.get(handler, adjust(timeout)); } -bool SessionImpl::get(ReceiverImpl& receiver, qpid::messaging::Message& message, qpid::sys::Duration timeout) +bool SessionImpl::get(ReceiverImpl& receiver, qpid::messaging::Message& message, qpid::messaging::Duration timeout) { IncomingMessageHandler handler(boost::bind(&SessionImpl::accept, this, &receiver, &message, _1)); return getIncoming(handler, timeout); } -bool SessionImpl::nextReceiver(qpid::messaging::Receiver& receiver, qpid::sys::Duration timeout) +bool SessionImpl::nextReceiver(qpid::messaging::Receiver& receiver, qpid::messaging::Duration timeout) { qpid::sys::Mutex::ScopedLock l(lock); while (true) { try { std::string destination; - if (incoming.getNextDestination(destination, timeout)) { + if (incoming.getNextDestination(destination, adjust(timeout))) { Receivers::const_iterator i = receivers.find(destination); if (i == receivers.end()) { throw qpid::Exception(QPID_MSG("Received message for unknown destination " << destination)); @@ -300,7 +309,7 @@ bool SessionImpl::nextReceiver(qpid::messaging::Receiver& receiver, qpid::sys::D } } -qpid::messaging::Receiver SessionImpl::nextReceiver(qpid::sys::Duration timeout) +qpid::messaging::Receiver SessionImpl::nextReceiver(qpid::messaging::Duration timeout) { qpid::messaging::Receiver receiver; if (!nextReceiver(receiver, timeout)) throw Receiver::NoMessageAvailable(); diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.h b/cpp/src/qpid/client/amqp0_10/SessionImpl.h index 96c7ca93a3..285c8f031b 100644 --- a/cpp/src/qpid/client/amqp0_10/SessionImpl.h +++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.h @@ -22,6 +22,7 @@ * */ #include "qpid/messaging/SessionImpl.h" +#include "qpid/messaging/Duration.h" #include "qpid/messaging/Variant.h" #include "qpid/client/Session.h" #include "qpid/client/SubscriptionManager.h" @@ -68,12 +69,12 @@ class SessionImpl : public qpid::messaging::SessionImpl qpid::messaging::Sender getSender(const std::string& name) const; qpid::messaging::Receiver getReceiver(const std::string& name) const; - bool nextReceiver(qpid::messaging::Receiver& receiver, qpid::sys::Duration timeout); - qpid::messaging::Receiver nextReceiver(qpid::sys::Duration timeout); + bool nextReceiver(qpid::messaging::Receiver& receiver, qpid::messaging::Duration timeout); + qpid::messaging::Receiver nextReceiver(qpid::messaging::Duration timeout); qpid::messaging::Connection getConnection() const; - bool get(ReceiverImpl& receiver, qpid::messaging::Message& message, qpid::sys::Duration timeout); + bool get(ReceiverImpl& receiver, qpid::messaging::Message& message, qpid::messaging::Duration timeout); void receiverCancelled(const std::string& name); void senderCancelled(const std::string& name); @@ -114,7 +115,7 @@ class SessionImpl : public qpid::messaging::SessionImpl const bool transactional; bool accept(ReceiverImpl*, qpid::messaging::Message*, IncomingMessages::MessageTransfer&); - bool getIncoming(IncomingMessages::Handler& handler, qpid::sys::Duration timeout); + bool getIncoming(IncomingMessages::Handler& handler, qpid::messaging::Duration timeout); bool getNextReceiver(qpid::messaging::Receiver* receiver, IncomingMessages::MessageTransfer& transfer); void reconnect(); diff --git a/cpp/src/qpid/messaging/Message.cpp b/cpp/src/qpid/messaging/Message.cpp index e4b28c3b2c..4f8a358764 100644 --- a/cpp/src/qpid/messaging/Message.cpp +++ b/cpp/src/qpid/messaging/Message.cpp @@ -50,8 +50,8 @@ const std::string& Message::getUserId() const { return impl->userId; } void Message::setCorrelationId(const std::string& id) { impl->correlationId = id; } const std::string& Message::getCorrelationId() const { return impl->correlationId; } -void Message::setTtl(uint64_t ttl) { impl->ttl = ttl; } -uint64_t Message::getTtl() const { return impl->ttl; } +void Message::setTtl(Duration ttl) { impl->ttl = ttl; } +Duration Message::getTtl() const { return impl->ttl; } void Message::setDurable(bool durable) { impl->durable = durable; } bool Message::getDurable() const { return impl->durable; } diff --git a/cpp/src/qpid/messaging/Receiver.cpp b/cpp/src/qpid/messaging/Receiver.cpp index 478228e0fb..841bee274c 100644 --- a/cpp/src/qpid/messaging/Receiver.cpp +++ b/cpp/src/qpid/messaging/Receiver.cpp @@ -39,10 +39,10 @@ Receiver::Receiver(ReceiverImpl* impl) { PI::ctor(*this, impl); } Receiver::Receiver(const Receiver& s) : qpid::client::Handle<ReceiverImpl>() { PI::copy(*this, s); } Receiver::~Receiver() { PI::dtor(*this); } Receiver& Receiver::operator=(const Receiver& s) { return PI::assign(*this, s); } -bool Receiver::get(Message& message, qpid::sys::Duration timeout) { return impl->get(message, timeout); } -Message Receiver::get(qpid::sys::Duration timeout) { return impl->get(timeout); } -bool Receiver::fetch(Message& message, qpid::sys::Duration timeout) { return impl->fetch(message, timeout); } -Message Receiver::fetch(qpid::sys::Duration timeout) { return impl->fetch(timeout); } +bool Receiver::get(Message& message, Duration timeout) { return impl->get(message, timeout); } +Message Receiver::get(Duration timeout) { return impl->get(timeout); } +bool Receiver::fetch(Message& message, Duration timeout) { return impl->fetch(message, timeout); } +Message Receiver::fetch(Duration timeout) { return impl->fetch(timeout); } void Receiver::setCapacity(uint32_t c) { impl->setCapacity(c); } uint32_t Receiver::getCapacity() { return impl->getCapacity(); } uint32_t Receiver::available() { return impl->available(); } diff --git a/cpp/src/qpid/messaging/ReceiverImpl.h b/cpp/src/qpid/messaging/ReceiverImpl.h index 2076de5d56..a720fe8210 100644 --- a/cpp/src/qpid/messaging/ReceiverImpl.h +++ b/cpp/src/qpid/messaging/ReceiverImpl.h @@ -22,7 +22,6 @@ * */ #include "qpid/RefCounted.h" -#include "qpid/sys/Time.h" namespace qpid { namespace client { @@ -38,10 +37,10 @@ class ReceiverImpl : public virtual qpid::RefCounted { public: virtual ~ReceiverImpl() {} - virtual bool get(Message& message, qpid::sys::Duration timeout) = 0; - virtual Message get(qpid::sys::Duration timeout) = 0; - virtual bool fetch(Message& message, qpid::sys::Duration timeout) = 0; - virtual Message fetch(qpid::sys::Duration timeout) = 0; + virtual bool get(Message& message, Duration timeout) = 0; + virtual Message get(Duration timeout) = 0; + virtual bool fetch(Message& message, Duration timeout) = 0; + virtual Message fetch(Duration timeout) = 0; virtual void setCapacity(uint32_t) = 0; virtual uint32_t getCapacity() = 0; virtual uint32_t available() = 0; diff --git a/cpp/src/qpid/messaging/Session.cpp b/cpp/src/qpid/messaging/Session.cpp index 99896caad4..5d1a6fb815 100644 --- a/cpp/src/qpid/messaging/Session.cpp +++ b/cpp/src/qpid/messaging/Session.cpp @@ -76,13 +76,13 @@ void Session::flush() impl->flush(); } -bool Session::nextReceiver(Receiver& receiver, qpid::sys::Duration timeout) +bool Session::nextReceiver(Receiver& receiver, Duration timeout) { return impl->nextReceiver(receiver, timeout); } -Receiver Session::nextReceiver(qpid::sys::Duration timeout) +Receiver Session::nextReceiver(Duration timeout) { return impl->nextReceiver(timeout); } diff --git a/cpp/src/qpid/messaging/SessionImpl.h b/cpp/src/qpid/messaging/SessionImpl.h index 164a6f6bc9..653df8fdda 100644 --- a/cpp/src/qpid/messaging/SessionImpl.h +++ b/cpp/src/qpid/messaging/SessionImpl.h @@ -23,7 +23,7 @@ */ #include "qpid/RefCounted.h" #include <string> -#include "qpid/sys/Time.h" +#include "qpid/messaging/Duration.h" namespace qpid { namespace client { @@ -50,8 +50,8 @@ class SessionImpl : public virtual qpid::RefCounted virtual void flush() = 0; virtual Sender createSender(const Address& address) = 0; virtual Receiver createReceiver(const Address& address) = 0; - virtual bool nextReceiver(Receiver& receiver, qpid::sys::Duration timeout) = 0; - virtual Receiver nextReceiver(qpid::sys::Duration timeout) = 0; + virtual bool nextReceiver(Receiver& receiver, Duration timeout) = 0; + virtual Receiver nextReceiver(Duration timeout) = 0; virtual uint32_t available() = 0; virtual uint32_t pendingAck() = 0; virtual Sender getSender(const std::string& name) const = 0; |
