49 QHttpSocketEngine(QObject *parent =
nullptr);
52 bool initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::IPv4Protocol) override;
53 bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState) override;
55 void setProxy(
const QNetworkProxy &networkProxy);
57 qintptr socketDescriptor()
const override;
59 bool isValid()
const override;
61 bool connectInternal();
62 bool connectToHost(
const QHostAddress &address, quint16 port) override;
63 bool connectToHostByName(
const QString &name, quint16 port) override;
64 bool bind(
const QHostAddress &address, quint16 port) override;
65 bool listen(
int backlog) override;
66 qintptr accept() override;
67 void close() override;
69 qint64 bytesAvailable()
const override;
71 qint64 read(
char *data, qint64 maxlen) override;
72 qint64 write(
const char *data, qint64 len) override;
74#ifndef QT_NO_UDPSOCKET
75#ifndef QT_NO_NETWORKINTERFACE
76 bool joinMulticastGroup(
const QHostAddress &groupAddress,
77 const QNetworkInterface &iface) override;
78 bool leaveMulticastGroup(
const QHostAddress &groupAddress,
79 const QNetworkInterface &iface) override;
80 QNetworkInterface multicastInterface()
const override;
81 bool setMulticastInterface(
const QNetworkInterface &iface) override;
84 bool hasPendingDatagrams()
const override;
85 qint64 pendingDatagramSize()
const override;
88 qint64 readDatagram(
char *data, qint64 maxlen, QIpPacketHeader *,
89 PacketHeaderOptions) override;
90 qint64 writeDatagram(
const char *data, qint64 len,
const QIpPacketHeader &) override;
91 qint64 bytesToWrite()
const override;
93 int option(SocketOption option)
const override;
94 bool setOption(SocketOption option,
int value) override;
96 bool waitForRead(QDeadlineTimer deadline = QDeadlineTimer{DefaultTimeout},
97 bool *timedOut =
nullptr) override;
98 bool waitForWrite(QDeadlineTimer deadline = QDeadlineTimer{DefaultTimeout},
99 bool *timedOut =
nullptr) override;
100 bool waitForReadOrWrite(
bool *readyToRead,
bool *readyToWrite,
101 bool checkRead,
bool checkWrite,
102 QDeadlineTimer deadline = QDeadlineTimer{DefaultTimeout},
103 bool *timedOut =
nullptr) override;
105 void waitForProtocolHandshake(QDeadlineTimer deadline)
const;
107 bool isReadNotificationEnabled()
const override;
108 void setReadNotificationEnabled(
bool enable) override;
109 bool isWriteNotificationEnabled()
const override;
110 void setWriteNotificationEnabled(
bool enable) override;
111 bool isExceptionNotificationEnabled()
const override;
112 void setExceptionNotificationEnabled(
bool enable) override;
115 void slotSocketConnected();
116 void slotSocketDisconnected();
117 void slotSocketReadNotification();
118 void slotSocketBytesWritten();
119 void slotSocketError(QAbstractSocket::SocketError error);
120 void slotSocketStateChanged(QAbstractSocket::SocketState state);
123 void emitPendingReadNotification();
124 void emitPendingWriteNotification();
125 void emitPendingConnectionNotification();
128 void emitReadNotification();
129 void emitWriteNotification();
130 void emitConnectionNotification();
132 bool readHttpHeader();
134 Q_DECLARE_PRIVATE(QHttpSocketEngine)
135 Q_DISABLE_COPY_MOVE(QHttpSocketEngine)