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

Public Types

enum  OpCode {
  OpCodeContinue , OpCodeText , OpCodeBinary , OpCodeReserved3 ,
  OpCodeReserved4 , OpCodeReserved5 , OpCodeReserved6 , OpCodeReserved7 ,
  OpCodeClose , OpCodePing , OpCodePong , OpCodeReservedB ,
  OpCodeReservedC , OpCodeReservedD , OpCodeReservedE , OpCodeReservedF
}
 
enum  WebSocketPhase { WebSocketPhaseHeaders , WebSocketPhaseSize , WebSocketPhaseMask , WebSocketPhasePayload }
 
- Public Types inherited from Cutelyst::ProtocolData
enum class  HeaderConnection { NotSet , Keep , Close , Upgrade }
 
enum  ParserState { MethodLine , HeaderLine , ContentBody , H2Frames }
 
- Public Types inherited from Cutelyst::EngineRequest
enum  StatusFlag : quint8 {
  InitialState , FinalizedHeaders , IOWrite , Chunked ,
  ChunkedDone , Async , Finalized
}
 

Public Member Functions

 ProtoRequestHttp (Socket *sock, int bufferSize)
 
qint64 doWrite (const char *data, qint64 len) override final
 
qint64 doWrite (const QByteArray &data)
 
void processingFinished () override final
 
void resetData () override final
 
void setupNewConnection (Socket *sock) override final
 
virtual void socketDisconnected () override final
 
bool webSocketClose (quint16 code, const QString &reason) override final
 
bool webSocketSendBinaryMessage (const QByteArray &message) override final
 
bool webSocketSendPing (const QByteArray &payload) override final
 
bool webSocketSendTextMessage (const QString &message) override final
 
bool writeHeaders (quint16 status, const Cutelyst::Headers &headers) override final
 
- Public Member Functions inherited from Cutelyst::ProtocolData
 ProtocolData (Socket *sock, int bufferSize)
 
- Public Member Functions inherited from Cutelyst::EngineRequest
void finalize ()
 
virtual void finalizeBody ()
 
virtual void finalizeCookies ()
 
virtual void finalizeError ()
 
virtual bool finalizeHeaders ()
 
void setPath (char *rawPath, const int len)
 
void setPath (QByteArray &path)
 
bool webSocketHandshake (const QByteArray &key, const QByteArray &origin, const QByteArray &protocol)
 
qint64 write (const char *data, qint64 len)
 

Public Attributes

int beginLine
 
int last
 
quint8 websocket_continue_opcode
 
quint8 websocket_finn_opcode
 
quint32 websocket_mask
 
QByteArray websocket_message
 
quint32 websocket_need
 
QByteArray websocket_payload
 
quint64 websocket_payload_size
 
int websocket_phase
 
int websocket_start_of_frame
 
bool websocketUpgraded
 
- Public Attributes inherited from Cutelyst::ProtocolData
int buf_size
 
char * buffer
 
ParserState connState
 
qint64 contentLength
 
HeaderConnection headerConnection
 
bool headerHost
 
QIODeviceio
 
Socketsock
 
ProtocolDataupgradedFrom
 
bool X_Forwarded_For
 
bool X_Forwarded_Host
 
bool X_Forwarded_Proto
 
- Public Attributes inherited from Cutelyst::EngineRequest
QIODevicebody
 
Contextcontext
 
Headers headers
 
bool isSecure
 
QByteArray method
 
QString path
 
QByteArray protocol
 
QByteArray query
 
QHostAddress remoteAddress
 
quint16 remotePort
 
QString remoteUser
 
QByteArray serverAddress
 
TimePointSteady startOfRequest
 
Status status
 

Protected Member Functions

bool webSocketHandshakeDo (const QByteArray &key, const QByteArray &origin, const QByteArray &protocol) override final
 

Detailed Description

Definition at line 18 of file protocolhttp.h.

Member Enumeration Documentation

◆ OpCode

enum Cutelyst::ProtoRequestHttp::OpCode

Definition at line 32 of file protocolhttp.h.

◆ WebSocketPhase

enum Cutelyst::ProtoRequestHttp::WebSocketPhase

Definition at line 24 of file protocolhttp.h.

Constructor & Destructor Documentation

◆ ProtoRequestHttp()

ProtoRequestHttp::ProtoRequestHttp ( Socket sock,
int  bufferSize 
)

Definition at line 321 of file protocolhttp.cpp.

◆ ~ProtoRequestHttp()

ProtoRequestHttp::~ProtoRequestHttp ( )
override

Definition at line 327 of file protocolhttp.cpp.

Member Function Documentation

◆ doWrite() [1/2]

qint64 ProtoRequestHttp::doWrite ( const char *  data,
qint64  len 
)
finaloverridevirtual

Reimplement this to do the RAW writing to the client

Implements Cutelyst::EngineRequest.

Definition at line 397 of file protocolhttp.cpp.

References QIODevice::write().

◆ doWrite() [2/2]

qint64 Cutelyst::ProtoRequestHttp::doWrite ( const QByteArray data)
inline

Definition at line 60 of file protocolhttp.h.

◆ processingFinished()

void ProtoRequestHttp::processingFinished ( )
finaloverridevirtual

This is called when the Application chain is finished processing this request, here the request can send final bytes to the client or do a clean up.

Default implementation deletes both body and context.

If a WebSocket upgrade was made then you will want to keep the context object around.

Reimplemented from Cutelyst::EngineRequest.

Definition at line 402 of file protocolhttp.cpp.

References Cutelyst::EngineRequest::status.

◆ resetData()

void Cutelyst::ProtoRequestHttp::resetData ( )
inlinefinaloverridevirtual

Reimplemented from Cutelyst::ProtocolData.

Definition at line 72 of file protocolhttp.h.

◆ setupNewConnection()

void ProtoRequestHttp::setupNewConnection ( Socket sock)
finaloverridevirtual

Implements Cutelyst::ProtocolData.

Definition at line 331 of file protocolhttp.cpp.

◆ socketDisconnected()

void ProtoRequestHttp::socketDisconnected ( )
finaloverridevirtual

Reimplemented from Cutelyst::ProtocolData.

Definition at line 495 of file protocolhttp.cpp.

◆ webSocketClose()

bool ProtoRequestHttp::webSocketClose ( quint16  code,
const QString reason 
)
finaloverridevirtual

Reimplemented from Cutelyst::EngineRequest.

Definition at line 480 of file protocolhttp.cpp.

◆ webSocketHandshakeDo()

bool ProtoRequestHttp::webSocketHandshakeDo ( const QByteArray key,
const QByteArray origin,
const QByteArray protocol 
)
finaloverrideprotectedvirtual

Reimplemented from Cutelyst::EngineRequest.

Definition at line 505 of file protocolhttp.cpp.

◆ webSocketSendBinaryMessage()

bool ProtoRequestHttp::webSocketSendBinaryMessage ( const QByteArray message)
finaloverridevirtual

Reimplemented from Cutelyst::EngineRequest.

Definition at line 452 of file protocolhttp.cpp.

◆ webSocketSendPing()

bool ProtoRequestHttp::webSocketSendPing ( const QByteArray payload)
finaloverridevirtual

Reimplemented from Cutelyst::EngineRequest.

Definition at line 466 of file protocolhttp.cpp.

◆ webSocketSendTextMessage()

bool ProtoRequestHttp::webSocketSendTextMessage ( const QString message)
finaloverridevirtual

Reimplemented from Cutelyst::EngineRequest.

Definition at line 437 of file protocolhttp.cpp.

◆ writeHeaders()

bool ProtoRequestHttp::writeHeaders ( quint16  status,
const Cutelyst::Headers headers 
)
finaloverridevirtual

Member Data Documentation

◆ beginLine

int Cutelyst::ProtoRequestHttp::beginLine

Definition at line 106 of file protocolhttp.h.

◆ last

int Cutelyst::ProtoRequestHttp::last

Definition at line 105 of file protocolhttp.h.

◆ websocket_continue_opcode

quint8 Cutelyst::ProtoRequestHttp::websocket_continue_opcode

Definition at line 109 of file protocolhttp.h.

◆ websocket_finn_opcode

quint8 Cutelyst::ProtoRequestHttp::websocket_finn_opcode

Definition at line 110 of file protocolhttp.h.

◆ websocket_mask

quint32 Cutelyst::ProtoRequestHttp::websocket_mask

Definition at line 104 of file protocolhttp.h.

◆ websocket_message

QByteArray Cutelyst::ProtoRequestHttp::websocket_message

Definition at line 100 of file protocolhttp.h.

◆ websocket_need

quint32 Cutelyst::ProtoRequestHttp::websocket_need

Definition at line 103 of file protocolhttp.h.

◆ websocket_payload

QByteArray Cutelyst::ProtoRequestHttp::websocket_payload

Definition at line 101 of file protocolhttp.h.

◆ websocket_payload_size

quint64 Cutelyst::ProtoRequestHttp::websocket_payload_size

Definition at line 102 of file protocolhttp.h.

◆ websocket_phase

int Cutelyst::ProtoRequestHttp::websocket_phase

Definition at line 108 of file protocolhttp.h.

◆ websocket_start_of_frame

int Cutelyst::ProtoRequestHttp::websocket_start_of_frame

Definition at line 107 of file protocolhttp.h.

◆ websocketUpgraded

bool Cutelyst::ProtoRequestHttp::websocketUpgraded

Definition at line 111 of file protocolhttp.h.