2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
42#ifndef WEB_WEBSOCKET_SUBPROTOCOLPLUGININTERFACE_H
43#define WEB_WEBSOCKET_SUBPROTOCOLPLUGININTERFACE_H
46 template <
typename SubProtocolT,
typename RequestT,
typename ResponseT>
51#ifndef DOXYGEN_SHOULD_SKIP_THIS
59 template <
typename SubProtocolT>
60 class SubProtocolFactory {
62 using SubProtocol = SubProtocolT;
73 SubProtocolFactory&
operator=(SubProtocolFactory&) =
delete;
74 SubProtocolFactory&
operator=(SubProtocolFactory&&) =
delete;
79 SubProtocol* subProtocol =
create(subProtocolContext
);
81 if (subProtocol !=
nullptr) {
93 if (subProtocol !=
nullptr) {
Echo * create(web::websocket::SubProtocolContext *subProtocolContext) override
Echo(web::websocket::SubProtocolContext *socketContextUpgradeBase, const std::string &name)
virtual SubProtocol * create(SubProtocolContext *subProtocolContext)=0
virtual ~SubProtocolFactory()=default
virtual std::size_t deleteSubProtocol(SubProtocol *subProtocol)
SubProtocolFactory()=delete
SubProtocolFactory(SubProtocolFactory &&)=delete
SubProtocolFactory & operator=(SubProtocolFactory &)=delete
SubProtocol * createSubProtocol(SubProtocolContext *subProtocolContext)
const std::string & getName()
std::string subProtocolName
SubProtocolFactory(const std::string &name)
SubProtocolFactory(SubProtocolFactory &)=delete
SubProtocolFactory & operator=(SubProtocolFactory &&)=delete
void setHandle(void *handle)
friend class web::websocket::SocketContextUpgrade
apps::websocket::subprotocol::echo::client::EchoFactory * echoClientSubProtocolFactory()