SNode.C
Loading...
Searching...
No Matches
web::websocket::server::SocketContextUpgrade Class Reference

#include <SocketContextUpgrade.h>

Inheritance diagram for web::websocket::server::SocketContextUpgrade:
Collaboration diagram for web::websocket::server::SocketContextUpgrade:

Public Member Functions

 SocketContextUpgrade (core::socket::stream::SocketConnection *socketConnection, web::http::SocketContextUpgradeFactory< web::http::server::Request, web::http::server::Response > *socketContextUpgradeFactory)
 ~SocketContextUpgrade () override
std::string loadSubProtocol (const std::list< std::string > &subProtocolNames)
Public Member Functions inherited from web::websocket::SocketContextUpgrade< SubProtocol, web::http::server::Request, web::http::server::Response >
 SocketContextUpgrade ()=delete
SocketContextUpgradeoperator= (const SocketContextUpgrade &)=delete
 ~SocketContextUpgrade () override=default
Public Member Functions inherited from core::socket::stream::SocketContext
 SocketContext (core::socket::stream::SocketConnection *socketConnection)
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
void sendToPeer (const std::string &data) const
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

Private Attributes

web::websocket::SubProtocolFactory< SubProtocol > * subProtocolFactory = nullptr

Additional Inherited Members

Public Types inherited from web::websocket::SocketContextUpgrade< SubProtocol, web::http::server::Request, web::http::server::Response >
using SubProtocol
using Request
using Response
Public Types inherited from web::websocket::SubProtocolContext
enum  OpCode {
  CONTINUATION = 0x00 , TEXT = 0x01 , BINARY = 0x02 , CLOSE = 0x08 ,
  PING = 0x09 , PONG = 0x0A
}
Protected Types inherited from web::websocket::SocketContextUpgrade< SubProtocol, web::http::server::Request, web::http::server::Response >
enum  Role
Protected Types inherited from web::http::SocketContextUpgrade< web::http::server::Request, web::http::server::Response >
using Request
using Response
using SocketContextUpgradeFactory
Protected Member Functions inherited from web::http::SocketContextUpgrade< web::http::server::Request, web::http::server::Response >
 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
std::size_t readFromPeer ()
Protected Member Functions inherited from core::socket::SocketContext
 SocketContext ()=default
virtual ~SocketContext ()
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 inherited from web::websocket::SocketContextUpgrade< SubProtocol, web::http::server::Request, web::http::server::Response >
SubProtocolsubProtocol
Protected Attributes inherited from web::websocket::Transmitter
bool closeSent = false

Detailed Description

Definition at line 73 of file SocketContextUpgrade.h.

Constructor & Destructor Documentation

◆ SocketContextUpgrade()

web::websocket::server::SocketContextUpgrade::SocketContextUpgrade ( core::socket::stream::SocketConnection * socketConnection,
web::http::SocketContextUpgradeFactory< web::http::server::Request, web::http::server::Response > * socketContextUpgradeFactory )

Definition at line 54 of file SocketContextUpgrade.cpp.

57 : web::websocket::SocketContextUpgrade<SubProtocol, web::http::server::Request, web::http::server::Response>(
59 }
core::socket::stream::SocketConnection * socketConnection

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

Referenced by web::websocket::server::SocketContextUpgradeFactory::create().

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

◆ ~SocketContextUpgrade()

web::websocket::server::SocketContextUpgrade::~SocketContextUpgrade ( )
override

Definition at line 61 of file SocketContextUpgrade.cpp.

References web::websocket::SubProtocolFactory< SubProtocolT >::deleteSubProtocol(), web::websocket::server::SubProtocolFactorySelector::instance(), and subProtocolFactory.

Here is the call graph for this function:

Member Function Documentation

◆ loadSubProtocol()

std::string web::websocket::server::SocketContextUpgrade::loadSubProtocol ( const std::list< std::string > & subProtocolNames)

Definition at line 69 of file SocketContextUpgrade.cpp.

69 {
70 std::string selectedSubProtocolName;
71
72 for (const std::string& subProtocolName : subProtocolNames) {
74
75 if (subProtocolFactory != nullptr) {
76 subProtocol = subProtocolFactory->createSubProtocol(this);
77 selectedSubProtocolName = subProtocol != nullptr ? subProtocolName : "";
78 }
79
80 if (!selectedSubProtocolName.empty()) {
81 break;
82 }
83 }
84
85 return selectedSubProtocolName;
86 }
SubProtocolFactory * select(const std::string &subProtocolName)

References web::websocket::SubProtocolFactory< SubProtocolT >::createSubProtocol(), web::websocket::server::SubProtocolFactorySelector::instance(), web::websocket::SubProtocolFactorySelector< SubProtocolFactoryT >::select(), and subProtocolFactory.

Referenced by web::websocket::server::SocketContextUpgradeFactory::create().

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

Member Data Documentation

◆ subProtocolFactory

web::websocket::SubProtocolFactory<SubProtocol>* web::websocket::server::SocketContextUpgrade::subProtocolFactory = nullptr
private

Definition at line 85 of file SocketContextUpgrade.h.

Referenced by loadSubProtocol(), and ~SocketContextUpgrade().


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