SNode.C
Loading...
Searching...
No Matches
web::websocket::SubProtocolFactory< SubProtocolT > Class Template Referenceabstract

#include <SubProtocolFactory.h>

Collaboration diagram for web::websocket::SubProtocolFactory< SubProtocolT >:

Public Types

using SubProtocol = SubProtocolT

Public Member Functions

 SubProtocolFactory ()=delete
 SubProtocolFactory (const std::string &name)
 SubProtocolFactory (SubProtocolFactory &)=delete
 SubProtocolFactory (SubProtocolFactory &&)=delete
SubProtocolFactoryoperator= (SubProtocolFactory &)=delete
SubProtocolFactoryoperator= (SubProtocolFactory &&)=delete
virtual ~SubProtocolFactory ()=default
SubProtocolcreateSubProtocol (SubProtocolContext *subProtocolContext)
virtual std::size_t deleteSubProtocol (SubProtocol *subProtocol)
const std::string & getName ()
void setHandle (void *handle)
void * getHandle ()

Private Member Functions

virtual SubProtocolcreate (SubProtocolContext *subProtocolContext)=0

Private Attributes

std::size_t refCount = 0
std::string subProtocolName
void * handle = nullptr

Detailed Description

template<typename SubProtocolT>
class web::websocket::SubProtocolFactory< SubProtocolT >

Definition at line 60 of file SubProtocolFactory.h.

Member Typedef Documentation

◆ SubProtocol

template<typename SubProtocolT>
using web::websocket::SubProtocolFactory< SubProtocolT >::SubProtocol = SubProtocolT

Definition at line 62 of file SubProtocolFactory.h.

Constructor & Destructor Documentation

◆ SubProtocolFactory() [1/4]

template<typename SubProtocolT>
web::websocket::SubProtocolFactory< SubProtocolT >::SubProtocolFactory ( )
delete

◆ SubProtocolFactory() [2/4]

template<typename SubProtocolT>
web::websocket::SubProtocolFactory< SubProtocolT >::SubProtocolFactory ( const std::string & name)
inline

◆ SubProtocolFactory() [3/4]

template<typename SubProtocolT>
web::websocket::SubProtocolFactory< SubProtocolT >::SubProtocolFactory ( SubProtocolFactory< SubProtocolT > & )
delete

◆ SubProtocolFactory() [4/4]

template<typename SubProtocolT>
web::websocket::SubProtocolFactory< SubProtocolT >::SubProtocolFactory ( SubProtocolFactory< SubProtocolT > && )
delete

◆ ~SubProtocolFactory()

template<typename SubProtocolT>
virtual web::websocket::SubProtocolFactory< SubProtocolT >::~SubProtocolFactory ( )
virtualdefault

Member Function Documentation

◆ create()

template<typename SubProtocolT>
virtual SubProtocol * web::websocket::SubProtocolFactory< SubProtocolT >::create ( SubProtocolContext * subProtocolContext)
privatepure virtual

Implemented in apps::websocket::subprotocol::echo::client::EchoFactory, and apps::websocket::subprotocol::echo::server::EchoFactory.

Referenced by createSubProtocol().

Here is the caller graph for this function:

◆ createSubProtocol()

template<typename SubProtocolT>
SubProtocol * web::websocket::SubProtocolFactory< SubProtocolT >::createSubProtocol ( SubProtocolContext * subProtocolContext)
inline

Definition at line 78 of file SubProtocolFactory.h.

78 {
80
81 if (subProtocol != nullptr) {
82 refCount++;
83 }
84
85 return subProtocol;
86 }
virtual SubProtocol * create(SubProtocolContext *subProtocolContext)=0

References create(), and refCount.

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

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

◆ deleteSubProtocol()

template<typename SubProtocolT>
virtual std::size_t web::websocket::SubProtocolFactory< SubProtocolT >::deleteSubProtocol ( SubProtocol * subProtocol)
inlinevirtual

Definition at line 92 of file SubProtocolFactory.h.

92 {
93 if (subProtocol != nullptr) {
94 delete subProtocol;
95
96 refCount--;
97 }
98
99 return refCount;
100 }

References refCount.

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

Here is the caller graph for this function:

◆ getHandle()

template<typename SubProtocolT>
void * web::websocket::SubProtocolFactory< SubProtocolT >::getHandle ( )
inline

Definition at line 110 of file SubProtocolFactory.h.

110 {
111 return handle;
112 }

References handle.

◆ getName()

template<typename SubProtocolT>
const std::string & web::websocket::SubProtocolFactory< SubProtocolT >::getName ( )
inline

Definition at line 102 of file SubProtocolFactory.h.

102 {
103 return subProtocolName;
104 }

References subProtocolName.

Referenced by apps::websocket::subprotocol::echo::client::EchoFactory::create(), and apps::websocket::subprotocol::echo::server::EchoFactory::create().

Here is the caller graph for this function:

◆ operator=() [1/2]

template<typename SubProtocolT>
SubProtocolFactory & web::websocket::SubProtocolFactory< SubProtocolT >::operator= ( SubProtocolFactory< SubProtocolT > && )
delete

◆ operator=() [2/2]

template<typename SubProtocolT>
SubProtocolFactory & web::websocket::SubProtocolFactory< SubProtocolT >::operator= ( SubProtocolFactory< SubProtocolT > & )
delete

◆ setHandle()

template<typename SubProtocolT>
void web::websocket::SubProtocolFactory< SubProtocolT >::setHandle ( void * handle)
inline

Definition at line 106 of file SubProtocolFactory.h.

106 {
107 this->handle = handle;
108 }

References handle.

Member Data Documentation

◆ handle

template<typename SubProtocolT>
void* web::websocket::SubProtocolFactory< SubProtocolT >::handle = nullptr
private

Definition at line 119 of file SubProtocolFactory.h.

Referenced by getHandle(), and setHandle().

◆ refCount

template<typename SubProtocolT>
std::size_t web::websocket::SubProtocolFactory< SubProtocolT >::refCount = 0
private

Definition at line 115 of file SubProtocolFactory.h.

Referenced by createSubProtocol(), and deleteSubProtocol().

◆ subProtocolName

template<typename SubProtocolT>
std::string web::websocket::SubProtocolFactory< SubProtocolT >::subProtocolName
private

Definition at line 117 of file SubProtocolFactory.h.

Referenced by getName(), and SubProtocolFactory().


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