cutelyst 4.3.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
Cutelyst::ProtocolHttp2 Class Referencefinal
Inheritance diagram for Cutelyst::ProtocolHttp2:

Public Member Functions

 ProtocolHttp2 (Server *wsgi)
 
ProtocolDatacreateData (Cutelyst::Socket *sock) const override final
 
void parse (Cutelyst::Socket *sock, QIODevice *io) const override final
 
int parseData (ProtoRequestHttp2 *request, QIODevice *io, const H2Frame &fr) const
 
int parseHeaders (ProtoRequestHttp2 *request, QIODevice *io, const H2Frame &fr) const
 
int parsePing (ProtoRequestHttp2 *request, QIODevice *io, const H2Frame &fr) const
 
int parsePriority (ProtoRequestHttp2 *request, QIODevice *io, const H2Frame &fr) const
 
int parseRstStream (ProtoRequestHttp2 *request, QIODevice *io, const H2Frame &fr) const
 
int parseSettings (ProtoRequestHttp2 *request, QIODevice *io, const H2Frame &fr) const
 
int parseWindowUpdate (ProtoRequestHttp2 *request, QIODevice *io, const H2Frame &fr) const
 
void queueStream (Cutelyst::Socket *socket, H2Stream *stream) const
 
int sendData (QIODevice *io, quint32 streamId, qint32 flags, const char *data, qint32 dataLen) const
 
int sendFrame (QIODevice *io, quint8 type, quint8 flags=0, quint32 streamId=0, const char *data=nullptr, qint32 dataLen=0) const
 
int sendGoAway (QIODevice *io, quint32 lastStreamId, quint32 error) const
 
int sendPing (QIODevice *io, quint8 flags, const char *data=nullptr, qint32 dataLen=0) const
 
int sendRstStream (QIODevice *io, quint32 streamId, quint32 error) const
 
int sendSettings (QIODevice *io, const std::vector< std::pair< quint16, quint32 > > &settings) const
 
int sendSettingsAck (QIODevice *io) const
 
Type type () const override
 
bool upgradeH2C (Cutelyst::Socket *socket, QIODevice *io, const Cutelyst::EngineRequest &request)
 
- Public Member Functions inherited from Cutelyst::Protocol
 Protocol (Server *wsgi)
 
QIODevicecreateBody (qint64 contentLength) const
 

Public Attributes

qint32 m_headerTableSize
 
quint32 m_maxFrameSize
 
- Public Attributes inherited from Cutelyst::Protocol
int m_bufferSize
 
char * m_postBuffer
 
qint64 m_postBuffering
 
qint64 m_postBufferSize
 
bool const useStats
 

Additional Inherited Members

- Public Types inherited from Cutelyst::Protocol
enum class  Type {
  Unknown , Http11 , Http11Websocket , Http2 ,
  FastCGI1
}
 

Detailed Description

Definition at line 116 of file protocolhttp2.h.

Constructor & Destructor Documentation

◆ ProtocolHttp2()

ProtocolHttp2::ProtocolHttp2 ( Server wsgi)
explicit

Definition at line 93 of file protocolhttp2.cpp.

◆ ~ProtocolHttp2()

ProtocolHttp2::~ProtocolHttp2 ( )
override

Definition at line 109 of file protocolhttp2.cpp.

Member Function Documentation

◆ createData()

ProtocolData * ProtocolHttp2::createData ( Cutelyst::Socket sock) const
finaloverridevirtual

Implements Cutelyst::Protocol.

Definition at line 272 of file protocolhttp2.cpp.

◆ parse()

void ProtocolHttp2::parse ( Cutelyst::Socket sock,
QIODevice io 
) const
finaloverridevirtual

Implements Cutelyst::Protocol.

Definition at line 118 of file protocolhttp2.cpp.

◆ parseData()

int ProtocolHttp2::parseData ( ProtoRequestHttp2 request,
QIODevice io,
const H2Frame fr 
) const

Definition at line 332 of file protocolhttp2.cpp.

◆ parseHeaders()

int ProtocolHttp2::parseHeaders ( ProtoRequestHttp2 request,
QIODevice io,
const H2Frame fr 
) const

Definition at line 387 of file protocolhttp2.cpp.

◆ parsePing()

int ProtocolHttp2::parsePing ( ProtoRequestHttp2 request,
QIODevice io,
const H2Frame fr 
) const

Definition at line 543 of file protocolhttp2.cpp.

◆ parsePriority()

int ProtocolHttp2::parsePriority ( ProtoRequestHttp2 request,
QIODevice io,
const H2Frame fr 
) const

Definition at line 513 of file protocolhttp2.cpp.

◆ parseRstStream()

int ProtocolHttp2::parseRstStream ( ProtoRequestHttp2 request,
QIODevice io,
const H2Frame fr 
) const

Definition at line 558 of file protocolhttp2.cpp.

◆ parseSettings()

int ProtocolHttp2::parseSettings ( ProtoRequestHttp2 request,
QIODevice io,
const H2Frame fr 
) const

Definition at line 277 of file protocolhttp2.cpp.

◆ parseWindowUpdate()

int ProtocolHttp2::parseWindowUpdate ( ProtoRequestHttp2 request,
QIODevice io,
const H2Frame fr 
) const

Definition at line 592 of file protocolhttp2.cpp.

◆ queueStream()

void ProtocolHttp2::queueStream ( Cutelyst::Socket socket,
H2Stream stream 
) const

Definition at line 775 of file protocolhttp2.cpp.

◆ sendData()

int ProtocolHttp2::sendData ( QIODevice io,
quint32  streamId,
qint32  flags,
const char *  data,
qint32  dataLen 
) const

Definition at line 708 of file protocolhttp2.cpp.

◆ sendFrame()

int ProtocolHttp2::sendFrame ( QIODevice io,
quint8  type,
quint8  flags = 0,
quint32  streamId = 0,
const char *  data = nullptr,
qint32  dataLen = 0 
) const

Definition at line 737 of file protocolhttp2.cpp.

◆ sendGoAway()

int ProtocolHttp2::sendGoAway ( QIODevice io,
quint32  lastStreamId,
quint32  error 
) const

Definition at line 648 of file protocolhttp2.cpp.

◆ sendPing()

int ProtocolHttp2::sendPing ( QIODevice io,
quint8  flags,
const char *  data = nullptr,
qint32  dataLen = 0 
) const

Definition at line 703 of file protocolhttp2.cpp.

◆ sendRstStream()

int ProtocolHttp2::sendRstStream ( QIODevice io,
quint32  streamId,
quint32  error 
) const

Definition at line 667 of file protocolhttp2.cpp.

◆ sendSettings()

int ProtocolHttp2::sendSettings ( QIODevice io,
const std::vector< std::pair< quint16, quint32 > > &  settings 
) const

Definition at line 682 of file protocolhttp2.cpp.

◆ sendSettingsAck()

int ProtocolHttp2::sendSettingsAck ( QIODevice io) const

Definition at line 698 of file protocolhttp2.cpp.

◆ type()

Protocol::Type ProtocolHttp2::type ( ) const
overridevirtual

Reimplemented from Cutelyst::Protocol.

Definition at line 113 of file protocolhttp2.cpp.

◆ upgradeH2C()

bool ProtocolHttp2::upgradeH2C ( Cutelyst::Socket socket,
QIODevice io,
const Cutelyst::EngineRequest request 
)

Definition at line 784 of file protocolhttp2.cpp.

Member Data Documentation

◆ m_headerTableSize

qint32 Cutelyst::ProtocolHttp2::m_headerTableSize

Definition at line 160 of file protocolhttp2.h.

◆ m_maxFrameSize

quint32 Cutelyst::ProtocolHttp2::m_maxFrameSize

Definition at line 159 of file protocolhttp2.h.