diff options
Diffstat (limited to 'cpp/src/qpid/sys/AsynchIOHandler.h')
-rw-r--r-- | cpp/src/qpid/sys/AsynchIOHandler.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cpp/src/qpid/sys/AsynchIOHandler.h b/cpp/src/qpid/sys/AsynchIOHandler.h index b9867606c4..307aad5b85 100644 --- a/cpp/src/qpid/sys/AsynchIOHandler.h +++ b/cpp/src/qpid/sys/AsynchIOHandler.h @@ -27,6 +27,8 @@ #include "qpid/sys/Mutex.h" #include "qpid/CommonImportExport.h" +#include <boost/intrusive_ptr.hpp> + namespace qpid { namespace framing { @@ -38,24 +40,28 @@ namespace sys { class AsynchIO; struct AsynchIOBufferBase; class Socket; +class Timer; +class TimerTask; class AsynchIOHandler : public OutputControl { std::string identifier; AsynchIO* aio; ConnectionCodec::Factory* factory; ConnectionCodec* codec; + uint32_t reads; bool readError; bool isClient; AtomicValue<int32_t> readCredit; static const int32_t InfiniteCredit = -1; Mutex creditLock; + boost::intrusive_ptr<sys::TimerTask> timeoutTimerTask; void write(const framing::ProtocolInitiation&); public: - QPID_COMMON_EXTERN AsynchIOHandler(std::string id, ConnectionCodec::Factory* f); + QPID_COMMON_EXTERN AsynchIOHandler(const std::string& id, qpid::sys::ConnectionCodec::Factory* f ); QPID_COMMON_EXTERN ~AsynchIOHandler(); - QPID_COMMON_EXTERN void init(AsynchIO* a, int numBuffs); + QPID_COMMON_EXTERN void init(AsynchIO* a, Timer& timer, uint32_t maxTime, int numBuffs); QPID_COMMON_INLINE_EXTERN void setClient() { isClient = true; } |