42 class SubProtocolFactorySelector
43 :
public web::websocket::SubProtocolFactorySelector<web::websocket::SubProtocolFactory<web::websocket::server::SubProtocol>> {
45 SubProtocolFactorySelector(
const SubProtocolFactorySelector&) =
delete;
47 SubProtocolFactorySelector& operator=(
const SubProtocolFactorySelector&) =
delete;
50 using Super = web::websocket::SubProtocolFactorySelector<web::websocket::
SubProtocolFactory<web::websocket::server::SubProtocol>>;
53 static SubProtocolFactorySelector* instance();
55 ~SubProtocolFactorySelector() override;
57 static void allowDlOpen();
59 template <
typename SubProtocolFactory>
60 static void link(
const std::string& subProtocolName, SubProtocolFactory* (*getSubProtocolFactory)()) {
61 SubProtocolFactorySelector::instance()->Super::link(subProtocolName, getSubProtocolFactory);
65 SubProtocolFactory* load(
const std::string& subProtocolName)
override;
67 SubProtocolFactorySelector() =
default;
SocketContextUpgrade(core::socket::stream::SocketConnection *socketConnection, web::http::SocketContextUpgradeFactory< web::http::server::Request, web::http::server::Response > *socketContextUpgradeFactory)
~SocketContextUpgrade() override
web::websocket::SubProtocolFactory< SubProtocol > * subProtocolFactory
std::string loadSubProtocol(const std::list< std::string > &subProtocolNames)