summaryrefslogtreecommitdiff
path: root/agents/webproxytrans.h
diff options
context:
space:
mode:
Diffstat (limited to 'agents/webproxytrans.h')
-rw-r--r--agents/webproxytrans.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/agents/webproxytrans.h b/agents/webproxytrans.h
new file mode 100644
index 0000000..950c7b9
--- /dev/null
+++ b/agents/webproxytrans.h
@@ -0,0 +1,42 @@
+#ifndef WEBPROXYTRANS_H
+#define WEBPROXYTRANS_H
+
+#include <QtCore/QIODevice>
+#include <QtNetwork/QTcpSocket>
+
+class WebProxyConn;
+
+class WebProxyTrans : public QObject
+{
+ Q_OBJECT
+public:
+ explicit WebProxyTrans(int transactionId, bool tunnel, const QString &host, int port, WebProxyConn *conn);
+
+ int transactionId() const;
+
+ void write(const QByteArray &data);
+
+signals:
+ void connected();
+ void dataReceived(const QByteArray &data);
+ void error();
+ void disconnected();
+
+private slots:
+ void handleSocketConnected();
+ void handleSocketDataWritten(qint64 written);
+ void handleSocketDataReady();
+ void handleSocketDisconnected();
+
+private:
+ WebProxyConn* conn();
+ void writeFromBuffer();
+
+private:
+ int _transactionId;
+ bool _tunnel;
+ QTcpSocket *_socket;
+ QByteArray _outBuf;
+};
+
+#endif // WEBPROXYTRANS_H