4#ifndef QHTTP2PROTOCOLHANDLER_P_H
5#define QHTTP2PROTOCOLHANDLER_P_H
18#include <private/qhttpnetworkconnectionchannel_p.h>
19#include <private/qabstractprotocolhandler_p.h>
20#include <private/qhttpnetworkrequest_p.h>
24#include <private/http2protocol_p.h>
25#include <private/http2streams_p.h>
26#include <private/http2frames_p.h>
27#include <private/hpacktable_p.h>
28#include <private/hpack_p.h>
30#include <QtCore/qnamespace.h>
31#include <QtCore/qbytearray.h>
32#include <QtCore/qglobal.h>
33#include <QtCore/qobject.h>
34#include <QtCore/qflags.h>
35#include <QtCore/qhash.h>
63 void _q_uploadDataReadyRead();
65 void _q_uploadDataDestroyed(
QObject* uploadData);
74 bool sendClientPreface();
75 bool sendSETTINGS_ACK();
80 bool sendGOAWAY(
quint32 errorCode);
84 void handlePRIORITY();
85 void handleRST_STREAM();
86 void handleSETTINGS();
87 void handlePUSH_PROMISE();
90 void handleWINDOW_UPDATE();
91 void handleCONTINUATION();
93 void handleContinuedHEADERS();
111 void markAsReset(
quint32 streamID);
113 void removeFromSuspended(
quint32 streamID);
114 void deleteActiveStream(
quint32 streamID);
115 bool streamWasReset(
quint32 streamID)
const;
117 bool prefaceSent =
false;
121 bool waitingForSettingsACK =
false;
131 std::deque<quint32> suspendedStreams[3];
132 inline static const std::deque<quint32>::size_type maxRecycledStreams = 10000;
133 std::deque<quint32> recycledStreams;
144 bool continuationExpected =
false;
145 std::vector<Http2::Frame> continuedFrames;
176 quint32 maxHeaderListSize = (std::numeric_limits<quint32>::max)();
184 bool validPeerStreamID()
const;
185 bool goingAway =
false;
186 bool pushPromiseEnabled =
false;
189 bool tryReserveStream(
const Http2::Frame &pushPromiseFrame,
191 void resetPromisedStream(
const Http2::Frame &pushPromiseFrame,
IOBluetoothL2CAPChannel * channel
Q_INVOKABLE void handleConnectionClosure()
Q_INVOKABLE void _q_receiveReply() override
QHttp2ProtocolHandler & operator=(const QHttp2ProtocolHandler &rhs)=delete
Q_INVOKABLE bool sendRequest() override
void _q_readyRead() override
Q_INVOKABLE void ensureClientPrefaceSent()
QHttp2ProtocolHandler(QHttp2ProtocolHandler &&rhs)=delete
QHttp2ProtocolHandler(const QHttp2ProtocolHandler &rhs)=delete
NetworkError
Indicates all possible error conditions found during the processing of the request.
\macro QT_RESTRICTED_CAST_FROM_ASCII
std::vector< HeaderField > HttpHeader
@ defaultSessionWindowSize
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
QPair< QHttpNetworkRequest, QHttpNetworkReply * > HttpMessagePair
GLuint GLsizei const GLchar * message
#define QT_REQUIRE_CONFIG(feature)