diff options
Diffstat (limited to 'cpp/src/qpid/client/Connector.h')
-rw-r--r-- | cpp/src/qpid/client/Connector.h | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/cpp/src/qpid/client/Connector.h b/cpp/src/qpid/client/Connector.h index 1577564d57..8aaaea247a 100644 --- a/cpp/src/qpid/client/Connector.h +++ b/cpp/src/qpid/client/Connector.h @@ -34,9 +34,12 @@ #include "qpid/sys/Monitor.h" #include "qpid/sys/Socket.h" #include "qpid/sys/Time.h" +#include "qpid/sys/AsynchIO.h" -namespace qpid { +#include <queue> +namespace qpid { + namespace client { class Connector : public framing::OutputHandler, @@ -61,24 +64,29 @@ class Connector : public framing::OutputHandler, framing::InputHandler* input; framing::InitiationHandler* initialiser; framing::OutputHandler* output; - - framing::Buffer inbuf; - framing::Buffer outbuf; sys::Mutex writeLock; + std::queue<framing::AMQFrame> writeFrameQueue; + sys::Thread receiver; sys::Socket socket; + sys::AsynchIO* aio; + sys::Poller::shared_ptr poller; + void checkIdle(ssize_t status); - void writeBlock(framing::AMQDataBlock* data); - void writeToSocket(char* data, size_t available); void setSocketTimeout(); void run(); void handleClosed(); bool closeInternal(); - + + void readbuff(qpid::sys::AsynchIO&, qpid::sys::AsynchIO::BufferBase*); + void writebuff(qpid::sys::AsynchIO&); + void writeDataBlock(const framing::AMQDataBlock& data); + void eof(qpid::sys::AsynchIO&); + friend class Channel; public: Connector(framing::ProtocolVersion pVersion, |