SNode.C
Loading...
Searching...
No Matches
web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT > Class Template Reference

#include <SocketContextUpgrade.h>

Inheritance diagram for web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >:
Collaboration diagram for web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >:

Public Types

using SubProtocol = SubProtocolT
 
using Request = RequestT
 
using Response = ResponseT
 
- Public Types inherited from web::websocket::SubProtocolContext
enum  OpCode {
  CONTINUATION = 0x00 , TEXT = 0x01 , BINARY = 0x02 , CLOSE = 0x08 ,
  PING = 0x09 , PONG = 0x0A
}
 

Public Member Functions

 SocketContextUpgrade ()=delete
 
 SocketContextUpgrade (const SocketContextUpgrade &)=delete
 
SocketContextUpgradeoperator= (const SocketContextUpgrade &)=delete
 
 ~SocketContextUpgrade () override=default
 
- Public Member Functions inherited from core::socket::stream::SocketContext
 SocketContext (core::socket::stream::SocketConnection *socketConnection)
 
 ~SocketContext () override
 
void sendToPeer (const char *chunk, std::size_t chunkLen) const final
 
bool streamToPeer (core::pipe::Source *source) const
 
void streamEof ()
 
std::size_t readFromPeer (char *chunk, std::size_t chunklen) const final
 
void setTimeout (const utils::Timeval &timeout) final
 
void shutdownRead ()
 
void shutdownWrite (bool forceClose=false)
 
void close () override
 
std::size_t getTotalSent () const override
 
std::size_t getTotalQueued () const override
 
std::size_t getTotalRead () const override
 
std::size_t getTotalProcessed () const override
 
SocketConnectiongetSocketConnection () const
 
virtual void switchSocketContext (SocketContext *newSocketContext)
 
virtual std::size_t readFromPeer (char *chunk, std::size_t chunklen) const=0
 
void sendToPeer (const std::string &data) const
 
virtual void sendToPeer (const char *chunk, std::size_t chunkLen) const=0
 
- Public Member Functions inherited from core::socket::SocketContext
 SocketContext (const SocketContext &)=delete
 
 SocketContext (SocketContext &&)=delete
 
SocketContextoperator= (const SocketContext &)=delete
 
SocketContextoperator= (SocketContext &&)=delete
 
void sendToPeer (const std::string &data) const
 
- Public Member Functions inherited from web::websocket::SubProtocolContext
 SubProtocolContext (bool masking)
 
 SubProtocolContext (const SubProtocolContext &)=delete
 
 ~SubProtocolContext () override
 
SubProtocolContextoperator= (const SubProtocolContext &)=delete
 

Protected Types

enum class  Role { SERVER , CLIENT }
 
- Protected Types inherited from web::http::SocketContextUpgrade< RequestT, ResponseT >
using Request = RequestT
 
using Response = ResponseT
 
using SocketContextUpgradeFactory = web::http::SocketContextUpgradeFactory< Request, Response >
 

Protected Member Functions

 SocketContextUpgrade (core::socket::stream::SocketConnection *socketConnection, web::http::SocketContextUpgradeFactory< Request, Response > *socketContextUpgradeFactory, Role role)
 
- Protected Member Functions inherited from web::http::SocketContextUpgrade< RequestT, ResponseT >
 SocketContextUpgrade (core::socket::stream::SocketConnection *socketConnection, SocketContextUpgradeFactory *socketContextUpgradeFactory)
 
 ~SocketContextUpgrade () override
 
- Protected Member Functions inherited from core::socket::stream::SocketContext
void onWriteError (int errnum) override
 
void onReadError (int errnum) override
 
void readFromPeer (std::size_t available)
 
- Protected Member Functions inherited from core::socket::SocketContext
 SocketContext ()=default
 
- Protected Member Functions inherited from web::websocket::Receiver
 Receiver (bool maskingExpected)
 
 Receiver (const Receiver &)=delete
 
Receiveroperator= (const Receiver &)=delete
 
virtual ~Receiver ()
 
std::size_t receive ()
 
std::size_t getPayloadTotalRead () const
 
- Protected Member Functions inherited from web::websocket::Transmitter
 Transmitter (bool masking)
 
void sendMessage (uint8_t opCode, const char *message, std::size_t messageLength)
 
void sendMessageStart (uint8_t opCode, const char *message, std::size_t messageLength)
 
void sendMessageFrame (const char *message, std::size_t messageLength)
 
void sendMessageEnd (const char *message, std::size_t messageLength)
 
std::size_t getPayloadTotalSent () const
 
 Transmitter ()=delete
 
 Transmitter (const Transmitter &)=delete
 
Transmitteroperator= (const Transmitter &)=delete
 
virtual ~Transmitter ()
 

Protected Attributes

SubProtocolsubProtocol = nullptr
 
- Protected Attributes inherited from web::websocket::Transmitter
bool closeSent = false
 

Private Types

using Super = web::http::SocketContextUpgrade< RequestT, ResponseT >
 

Private Member Functions

void sendMessage (uint8_t opCode, const char *message, std::size_t messageLength) override
 
void sendMessageStart (uint8_t opCode, const char *message, std::size_t messageLength) override
 
void sendMessageFrame (const char *message, std::size_t messageLength) override
 
void sendMessageEnd (const char *message, std::size_t messageLength) override
 
void sendPing (const char *reason=nullptr, std::size_t reasonLength=0) override
 
void sendPong (const char *reason=nullptr, std::size_t reasonLength=0) override
 
void sendClose (uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0) override
 
void sendClose (const char *message, std::size_t messageLength) override
 
void sendFrameChunk (const char *chunk, std::size_t chunkLen) const final
 
std::size_t readFrameChunk (char *chunk, std::size_t chunkLen) const final
 
core::socket::stream::SocketConnectiongetSocketConnection () const override
 
void onMessageStart (int opCode) override
 
void onMessageData (const char *chunk, uint64_t chunkLen) override
 
void onMessageEnd () override
 
void onMessageError (uint16_t errnum) override
 
void onConnected () override
 
void onDisconnected () override
 
bool onSignal (int sig) override
 
std::size_t onReceivedFromPeer () override
 
std::size_t getPayloadTotalSent () const override
 
std::size_t getPayloadTotalRead () const override
 
std::string getOnlineSince () const override
 
std::string getOnlineDuration () const override
 

Private Attributes

int receivedOpCode = 0
 
std::string pongCloseData
 

Detailed Description

template<typename SubProtocolT, typename RequestT, typename ResponseT>
class web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >

Definition at line 78 of file SocketContextUpgrade.h.

Member Typedef Documentation

◆ Request

template<typename SubProtocolT , typename RequestT , typename ResponseT >
using web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::Request = RequestT

Definition at line 91 of file SocketContextUpgrade.h.

◆ Response

template<typename SubProtocolT , typename RequestT , typename ResponseT >
using web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::Response = ResponseT

Definition at line 92 of file SocketContextUpgrade.h.

◆ SubProtocol

template<typename SubProtocolT , typename RequestT , typename ResponseT >
using web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::SubProtocol = SubProtocolT

Definition at line 90 of file SocketContextUpgrade.h.

◆ Super

template<typename SubProtocolT , typename RequestT , typename ResponseT >
using web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::Super = web::http::SocketContextUpgrade<RequestT, ResponseT>
private

Definition at line 87 of file SocketContextUpgrade.h.

Member Enumeration Documentation

◆ Role

template<typename SubProtocolT , typename RequestT , typename ResponseT >
enum class web::websocket::SocketContextUpgrade::Role
strongprotected

Constructor & Destructor Documentation

◆ SocketContextUpgrade() [1/3]

template<typename SubProtocolT , typename RequestT , typename ResponseT >
web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::SocketContextUpgrade ( )
delete

◆ SocketContextUpgrade() [2/3]

template<typename SubProtocolT , typename RequestT , typename ResponseT >
web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::SocketContextUpgrade ( const SocketContextUpgrade< SubProtocolT, RequestT, ResponseT > &  )
delete

◆ SocketContextUpgrade() [3/3]

template<typename SubProtocol , typename Request , typename Response >
web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::SocketContextUpgrade ( core::socket::stream::SocketConnection socketConnection,
web::http::SocketContextUpgradeFactory< Request, Response > *  socketContextUpgradeFactory,
Role  role 
)
protected

Definition at line 54 of file SocketContextUpgrade.hpp.

60 }
core::socket::stream::SocketConnection * socketConnection
SocketContextUpgradeFactory * socketContextUpgradeFactory
web::http::SocketContextUpgrade< RequestT, ResponseT > Super

Referenced by web::websocket::client::SocketContextUpgrade::SocketContextUpgrade(), and web::websocket::server::SocketContextUpgrade::SocketContextUpgrade().

Here is the caller graph for this function:

◆ ~SocketContextUpgrade()

template<typename SubProtocolT , typename RequestT , typename ResponseT >
web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::~SocketContextUpgrade ( )
overridedefault

Member Function Documentation

◆ getOnlineDuration()

template<typename SubProtocol , typename Request , typename Response >
std::string web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::getOnlineDuration ( ) const
overrideprivatevirtual

Reimplemented from core::socket::stream::SocketContext.

Definition at line 254 of file SocketContextUpgrade.hpp.

254 {
256 }
std::string getOnlineDuration() const override

◆ getOnlineSince()

template<typename SubProtocol , typename Request , typename Response >
std::string web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::getOnlineSince ( ) const
overrideprivatevirtual

Reimplemented from core::socket::stream::SocketContext.

Definition at line 249 of file SocketContextUpgrade.hpp.

249 {
250 return Super::getOnlineSince();
251 }
std::string getOnlineSince() const override

◆ getPayloadTotalRead()

template<typename SubProtocol , typename Request , typename Response >
std::size_t web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::getPayloadTotalRead ( ) const
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 244 of file SocketContextUpgrade.hpp.

244 {
246 }
std::size_t getPayloadTotalRead() const
Definition Receiver.cpp:104

References web::websocket::Receiver::getPayloadTotalRead().

Here is the call graph for this function:

◆ getPayloadTotalSent()

template<typename SubProtocol , typename Request , typename Response >
std::size_t web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::getPayloadTotalSent ( ) const
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 239 of file SocketContextUpgrade.hpp.

239 {
241 }
std::size_t getPayloadTotalSent() const

References web::websocket::Transmitter::getPayloadTotalSent().

Here is the call graph for this function:

◆ getSocketConnection()

template<typename SubProtocol , typename Request , typename Response >
core::socket::stream::SocketConnection * web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::getSocketConnection ( ) const
overrideprivatevirtual

◆ onConnected()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::onConnected ( )
overrideprivatevirtual

Implements core::socket::stream::SocketContext.

Definition at line 216 of file SocketContextUpgrade.hpp.

216 {
217 LOG(INFO) << getSocketConnection()->getConnectionName() << " WebSocketContext: Subprotocol '" << subProtocol->name << "' connect";
218 subProtocol->attach();
219 }
const std::string & getConnectionName() const
core::socket::stream::SocketConnection * getSocketConnection() const override

References web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::getSocketConnection(), and web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::subProtocol.

Here is the call graph for this function:

◆ onDisconnected()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::onDisconnected ( )
overrideprivatevirtual

Implements core::socket::stream::SocketContext.

Definition at line 222 of file SocketContextUpgrade.hpp.

222 {
223 subProtocol->detach();
224 LOG(INFO) << getSocketConnection()->getConnectionName() << " WebSocketContext: Subprotocol '" << subProtocol->name
225 << "' disconnected";
226 }

References web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::getSocketConnection(), and web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::subProtocol.

Here is the call graph for this function:

◆ onMessageData()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::onMessageData ( const char *  chunk,
uint64_t  chunkLen 
)
overrideprivatevirtual

Implements web::websocket::Receiver.

Definition at line 157 of file SocketContextUpgrade.hpp.

157 {
158 switch (receivedOpCode) {
160 [[fallthrough]];
162 [[fallthrough]];
164 pongCloseData += std::string(chunk, static_cast<std::size_t>(chunkLen));
165 break;
166 default:
167 std::size_t chunkOffset = 0;
168 do {
169 std::size_t sendChunkLen =
170 (chunkLen - chunkOffset <= SIZE_MAX) ? static_cast<std::size_t>(chunkLen - chunkOffset) : SIZE_MAX;
171 subProtocol->onMessageData(chunk + chunkOffset, sendChunkLen);
172 chunkOffset += sendChunkLen;
173 } while (chunkLen - chunkOffset > 0);
174 break;
175 }
176 }

References web::websocket::SubProtocolContext::CLOSE, web::websocket::SubProtocolContext::PING, web::websocket::SubProtocolContext::PONG, web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::pongCloseData, web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::receivedOpCode, and web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::subProtocol.

◆ onMessageEnd()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::onMessageEnd ( )
overrideprivatevirtual

Implements web::websocket::Receiver.

Definition at line 179 of file SocketContextUpgrade.hpp.

179 {
180 switch (receivedOpCode) {
182 if (closeSent) { // active close
183 closeSent = false;
184 LOG(DEBUG) << getSocketConnection()->getConnectionName() << " WebSocketContext: Subprotocol '" << subProtocol->name
185 << "' close confirmed from peer";
186 } else { // passive close
187 LOG(DEBUG) << getSocketConnection()->getConnectionName() << " WebSocketContext: Subprotocol '" << subProtocol->name
188 << "' close request received - replying with close";
189
190 sendClose(pongCloseData.data(), pongCloseData.length());
191 pongCloseData.clear();
192
194 }
195 break;
197 sendPong(pongCloseData.data(), pongCloseData.length());
198 pongCloseData.clear();
199 break;
201 subProtocol->onPongReceived();
202 break;
203 default:
204 subProtocol->onMessageEnd();
205 break;
206 }
207 }
void shutdownWrite(bool forceClose=false)
void sendClose(uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0) override
void sendPong(const char *reason=nullptr, std::size_t reasonLength=0) override

References web::websocket::SubProtocolContext::CLOSE, web::websocket::Transmitter::closeSent, web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::getSocketConnection(), web::websocket::SubProtocolContext::PING, web::websocket::SubProtocolContext::PONG, web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::pongCloseData, web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::receivedOpCode, web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::sendPong(), and web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::subProtocol.

Here is the call graph for this function:

◆ onMessageError()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::onMessageError ( uint16_t  errnum)
overrideprivatevirtual

Implements web::websocket::Receiver.

Definition at line 210 of file SocketContextUpgrade.hpp.

210 {
211 subProtocol->onMessageError(errnum);
212 sendClose(errnum);
213 }

References web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::subProtocol.

◆ onMessageStart()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::onMessageStart ( int  opCode)
overrideprivatevirtual

Implements web::websocket::Receiver.

Definition at line 140 of file SocketContextUpgrade.hpp.

140 {
142
143 switch (opCode) {
145 [[fallthrough]];
147 [[fallthrough]];
149 break;
150 default:
151 subProtocol->onMessageStart(opCode);
152 break;
153 }
154 }

◆ onReceivedFromPeer()

template<typename SubProtocol , typename Request , typename Response >
std::size_t web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::onReceivedFromPeer ( )
overrideprivatevirtual

Implements core::socket::SocketContext.

Definition at line 234 of file SocketContextUpgrade.hpp.

234 {
235 return Receiver::receive();
236 }
std::size_t receive()
Definition Receiver.cpp:67

References web::websocket::Receiver::receive().

Here is the call graph for this function:

◆ onSignal()

template<typename SubProtocol , typename Request , typename Response >
bool web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::onSignal ( int  sig)
overrideprivatevirtual

◆ operator=()

template<typename SubProtocolT , typename RequestT , typename ResponseT >
SocketContextUpgrade & web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::operator= ( const SocketContextUpgrade< SubProtocolT, RequestT, ResponseT > &  )
delete

◆ readFrameChunk()

template<typename SubProtocol , typename Request , typename Response >
std::size_t web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::readFrameChunk ( char *  chunk,
std::size_t  chunkLen 
) const
finalprivatevirtual

Implements web::websocket::Receiver.

Definition at line 130 of file SocketContextUpgrade.hpp.

130 {
131 return Super::readFromPeer(chunk, chunkLen);
132 }
std::size_t readFromPeer(char *chunk, std::size_t chunklen) const final

◆ sendClose() [1/2]

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendClose ( const char *  message,
std::size_t  messageLength 
)
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 111 of file SocketContextUpgrade.hpp.

111 {
112 if (!closeSent) {
113 LOG(DEBUG) << this->getSocketConnection()->getConnectionName() << " WebSocketContext: Subprotocol '" << subProtocol->name
114 << "' sending close to peer";
115
116 sendMessage(8, message, messageLength);
117
119
120 closeSent = true;
121 }
122 }
void setTimeout(const utils::Timeval &timeout) final
void sendMessage(uint8_t opCode, const char *message, std::size_t messageLength) override
#define CLOSE_SOCKET_TIMEOUT

◆ sendClose() [2/2]

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendClose ( uint16_t  statusCode = 1000,
const char *  reason = nullptr,
std::size_t  reasonLength = 0 
)
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 95 of file SocketContextUpgrade.hpp.

95 {
96 std::size_t closePayloadLength = reasonLength + 2;
97 char* closePayload = new char[closePayloadLength];
98
99 *reinterpret_cast<uint16_t*>(closePayload) = htobe16(statusCode); // cppcheck-suppress uninitdata
100
101 if (reasonLength > 0) {
102 memcpy(closePayload + 2, reason, reasonLength);
103 }
104
105 sendClose(closePayload, closePayloadLength);
106
107 delete[] closePayload;
108 }

◆ sendFrameChunk()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendFrameChunk ( const char *  chunk,
std::size_t  chunkLen 
) const
finalprivatevirtual

Implements web::websocket::Transmitter.

Definition at line 125 of file SocketContextUpgrade.hpp.

125 {
126 Super::sendToPeer(message, messageLength);
127 }
void sendToPeer(const char *chunk, std::size_t chunkLen) const final

◆ sendMessage()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendMessage ( uint8_t  opCode,
const char *  message,
std::size_t  messageLength 
)
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 63 of file SocketContextUpgrade.hpp.

63 {
64 Transmitter::sendMessage(opCode, message, messageLength);
65 }
void sendMessage(uint8_t opCode, const char *message, std::size_t messageLength)

References web::websocket::Transmitter::sendMessage().

Referenced by web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::sendPing(), and web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::sendPong().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendMessageEnd()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendMessageEnd ( const char *  message,
std::size_t  messageLength 
)
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 79 of file SocketContextUpgrade.hpp.

79 {
80 Transmitter::sendMessageEnd(message, messageLength);
81 }
void sendMessageEnd(const char *message, std::size_t messageLength)

References web::websocket::Transmitter::sendMessageEnd().

Here is the call graph for this function:

◆ sendMessageFrame()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendMessageFrame ( const char *  message,
std::size_t  messageLength 
)
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 74 of file SocketContextUpgrade.hpp.

74 {
75 Transmitter::sendMessageFrame(message, messageLength);
76 }
void sendMessageFrame(const char *message, std::size_t messageLength)

References web::websocket::Transmitter::sendMessageFrame().

Here is the call graph for this function:

◆ sendMessageStart()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendMessageStart ( uint8_t  opCode,
const char *  message,
std::size_t  messageLength 
)
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 69 of file SocketContextUpgrade.hpp.

69 {
70 Transmitter::sendMessageStart(opCode, message, messageLength);
71 }
void sendMessageStart(uint8_t opCode, const char *message, std::size_t messageLength)

References web::websocket::Transmitter::sendMessageStart().

Here is the call graph for this function:

◆ sendPing()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendPing ( const char *  reason = nullptr,
std::size_t  reasonLength = 0 
)
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 84 of file SocketContextUpgrade.hpp.

84 {
85 sendMessage(9, reason, reasonLength);
86 }

References web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::sendMessage().

Here is the call graph for this function:

◆ sendPong()

template<typename SubProtocol , typename Request , typename Response >
void web::websocket::SocketContextUpgrade< SubProtocol, Request, Response >::sendPong ( const char *  reason = nullptr,
std::size_t  reasonLength = 0 
)
overrideprivatevirtual

Implements web::websocket::SubProtocolContext.

Definition at line 89 of file SocketContextUpgrade.hpp.

89 {
90 sendMessage(10, reason, reasonLength);
91 }

References web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::sendMessage().

Referenced by web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::onMessageEnd().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ pongCloseData

template<typename SubProtocolT , typename RequestT , typename ResponseT >
std::string web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::pongCloseData
private

◆ receivedOpCode

template<typename SubProtocolT , typename RequestT , typename ResponseT >
int web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >::receivedOpCode = 0
private

◆ subProtocol


The documentation for this class was generated from the following files: