summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/Connector.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/client/Connector.h')
-rw-r--r--cpp/src/qpid/client/Connector.h22
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,