cutelyst  4.4.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 Function Documentation

◆ doWrite()

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().

◆ 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.

◆ writeHeaders()

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