5 #ifndef PROTOCOLHTTP2_H
6 #define PROTOCOLHTTP2_H
37 enum State { Idle, Open, HalfClosed, Closed };
41 qint64
doWrite(
const char *data, qint64 len)
override final;
53 qint32 windowSize = 65535;
54 qint64 contentLength = -1;
56 qint64 consumedData = 0;
70 inline void resetData()
override final
72 ProtocolData::resetData();
79 auto it = streams.constBegin();
80 while (it != streams.constEnd()) {
84 delete it.value()->context;
90 headersBuffer.
clear();
92 streamForContinuation = 0;
95 settingsInitialWindowSize = 65535;
99 quint32 stream_id = 0;
103 HPack *hpack =
nullptr;
104 quint64 streamForContinuation = 0;
105 quint32 maxStreamId = 0;
107 qint32 windowSize = 65535;
108 qint32 settingsInitialWindowSize = 65535;
109 quint32 settingsMaxFrameSize = 16384;
110 quint8 processing = 0;
122 Type type()
const override;
136 int sendGoAway(
QIODevice *io, quint32 lastStreamId, quint32 error)
const;
137 int sendRstStream(
QIODevice *io, quint32 streamId, quint32 error)
const;
138 int sendSettings(
QIODevice *io,
const std::vector<std::pair<quint16, quint32>> &settings)
const;
139 int sendSettingsAck(
QIODevice *io)
const;
140 int sendPing(
QIODevice *io, quint8 flags,
const char *data =
nullptr, qint32 dataLen = 0)
const;
145 qint32 dataLen)
const;
149 quint32 streamId = 0,
150 const char *data =
nullptr,
151 qint32 dataLen = 0)
const;
159 quint32 m_maxFrameSize;
160 qint32 m_headerTableSize;
qint64 doWrite(const char *data, qint64 len) override final
void processingFinished() override final
bool writeHeaders(quint16 status, const Cutelyst::Headers &headers) override final
The Cutelyst namespace holds all public Cutelyst API.