summaryrefslogtreecommitdiff
path: root/cpp/src/qpid
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2010-03-03 17:06:44 +0000
committerGordon Sim <gsim@apache.org>2010-03-03 17:06:44 +0000
commit2a71aa199010c48608f6d63794f52ad2e7afede5 (patch)
treec75a9248e0ced59974bde18a73f5237f5efb8446 /cpp/src/qpid
parent589def015a6567ecb7be9fe2af0ebec662cea56c (diff)
downloadqpid-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.cpp12
-rw-r--r--cpp/src/qpid/client/amqp0_10/ReceiverImpl.h22
-rw-r--r--cpp/src/qpid/client/amqp0_10/SessionImpl.cpp21
-rw-r--r--cpp/src/qpid/client/amqp0_10/SessionImpl.h9
-rw-r--r--cpp/src/qpid/messaging/Message.cpp4
-rw-r--r--cpp/src/qpid/messaging/Receiver.cpp8
-rw-r--r--cpp/src/qpid/messaging/ReceiverImpl.h9
-rw-r--r--cpp/src/qpid/messaging/Session.cpp4
-rw-r--r--cpp/src/qpid/messaging/SessionImpl.h6
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;