diff options
Diffstat (limited to 'cpp/src/qpid/client')
| -rw-r--r-- | cpp/src/qpid/client/Connector.cpp | 15 | ||||
| -rw-r--r-- | cpp/src/qpid/client/Connector.h | 12 |
2 files changed, 14 insertions, 13 deletions
diff --git a/cpp/src/qpid/client/Connector.cpp b/cpp/src/qpid/client/Connector.cpp index 8e2ff9a09c..3447467fda 100644 --- a/cpp/src/qpid/client/Connector.cpp +++ b/cpp/src/qpid/client/Connector.cpp @@ -37,7 +37,6 @@ Connector::Connector( send_buffer_size(buffer_size), version(ver), closed(true), - lastIn(0), lastOut(0), timeout(0), idleIn(0), idleOut(0), timeoutHandler(0), @@ -100,7 +99,7 @@ void Connector::writeToSocket(char* data, size_t available){ while(written < available && !closed){ ssize_t sent = socket.send(data + written, available-written); if(sent > 0) { - lastOut = now() * TIME_MSEC; + lastOut = now(); written += sent; } } @@ -124,9 +123,9 @@ bool Connector::markClosed(){ void Connector::checkIdle(ssize_t status){ if(timeoutHandler){ - Time t = now() * TIME_MSEC; + AbsTime t = now(); if(status == Socket::SOCKET_TIMEOUT) { - if(idleIn && (t - lastIn > idleIn)){ + if(idleIn && (Duration(lastIn, t) > idleIn)){ timeoutHandler->idleIn(); } } @@ -136,14 +135,14 @@ void Connector::checkIdle(ssize_t status){ else { lastIn = t; } - if(idleOut && (t - lastOut > idleOut)){ + if(idleOut && (Duration(lastOut, t) > idleOut)){ timeoutHandler->idleOut(); } } } void Connector::setReadTimeout(uint16_t t){ - idleIn = t * 1000;//t is in secs + idleIn = t * TIME_SEC;//t is in secs if(idleIn && (!timeout || idleIn < timeout)){ timeout = idleIn; setSocketTimeout(); @@ -152,7 +151,7 @@ void Connector::setReadTimeout(uint16_t t){ } void Connector::setWriteTimeout(uint16_t t){ - idleOut = t * 1000;//t is in secs + idleOut = t * TIME_SEC;//t is in secs if(idleOut && (!timeout || idleOut < timeout)){ timeout = idleOut; setSocketTimeout(); @@ -160,7 +159,7 @@ void Connector::setWriteTimeout(uint16_t t){ } void Connector::setSocketTimeout(){ - socket.setTimeout(timeout*TIME_MSEC); + socket.setTimeout(timeout); } void Connector::setTimeoutHandler(TimeoutHandler* handler){ diff --git a/cpp/src/qpid/client/Connector.h b/cpp/src/qpid/client/Connector.h index 10bde1b8ea..56eea95dd1 100644 --- a/cpp/src/qpid/client/Connector.h +++ b/cpp/src/qpid/client/Connector.h @@ -30,8 +30,10 @@ #include "qpid/sys/ShutdownHandler.h" #include "qpid/sys/TimeoutHandler.h" #include "qpid/sys/Thread.h" +#include "qpid/sys/Runnable.h" #include "qpid/sys/Monitor.h" #include "qpid/sys/Socket.h" +#include "qpid/sys/Time.h" namespace qpid { @@ -48,11 +50,11 @@ class Connector : public framing::OutputHandler, bool closed; sys::Mutex closedLock; - int64_t lastIn; - int64_t lastOut; - int64_t timeout; - uint32_t idleIn; - uint32_t idleOut; + sys::AbsTime lastIn; + sys::AbsTime lastOut; + sys::Duration timeout; + sys::Duration idleIn; + sys::Duration idleOut; sys::TimeoutHandler* timeoutHandler; sys::ShutdownHandler* shutdownHandler; |
