+private slots:
+ void startReceiving();
+ void onDataReceived();
+ void onSocketDisconnected();
+ void onSocketError(QAbstractSocket::SocketError error);
+
+private:
+ void setupConnectionForReceive();
+ bool relayData(const QByteArray &data, bool requireChunkSize);
+ virtual void cleanUp();
+
+ QPointer<Peer> _peer;
+ QTcpSocket *_socket;
+ quint64 _pos;
+ QByteArray _buffer;
+ bool _reading;