SNode.C
Loading...
Searching...
No Matches
apps::websocket::subprotocol::echo::client::Echo Class Reference

#include <Echo.h>

Inheritance diagram for apps::websocket::subprotocol::echo::client::Echo:
Collaboration diagram for apps::websocket::subprotocol::echo::client::Echo:

Public Member Functions

 Echo (web::websocket::SubProtocolContext *socketContextUpgradeBase, const std::string &name)
 
- Public Member Functions inherited from web::websocket::client::SubProtocol
 ~SubProtocol () override
 
- Public Member Functions inherited from web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >
 SubProtocol (SubProtocol &)=delete
 
 SubProtocol (SubProtocol &&)=delete
 
SubProtocoloperator= (SubProtocol &)=delete
 
SubProtocoloperator= (SubProtocol &&)=delete
 
void sendMessage (const char *message, std::size_t messageLength) const
 
void sendMessage (const std::string &message) const
 
void sendMessageStart (const char *message, std::size_t messageLength) const
 
void sendMessageStart (const std::string &message) const
 
void sendMessageFrame (const char *message, std::size_t messageLength) const
 
void sendMessageFrame (const std::string &message) const
 
void sendMessageEnd (const char *message, std::size_t messageLength) const
 
void sendMessageEnd (const std::string &message) const
 
void sendPing (const char *reason=nullptr, std::size_t reasonLength=0) const
 
void sendClose (uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0)
 
const std::string & getName ()
 
core::socket::stream::SocketConnectiongetSocketConnection () const
 

Private Member Functions

void onConnected () override
 
void onMessageStart (int opCode) override
 
void onMessageData (const char *chunk, std::size_t chunkLen) override
 
void onMessageEnd () override
 
void onMessageError (uint16_t errnum) override
 
void onDisconnected () override
 
bool onSignal (int sig) override
 

Private Attributes

std::string data
 

Additional Inherited Members

- Protected Member Functions inherited from web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >
 SubProtocol (SubProtocolContext *subProtocolContext, const std::string &name, int pingInterval=60, int maxFlyingPings=3)
 
- Protected Attributes inherited from web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >
SubProtocolContextsubProtocolContext
 

Detailed Description

Definition at line 61 of file Echo.h.

Constructor & Destructor Documentation

◆ Echo()

apps::websocket::subprotocol::echo::client::Echo::Echo ( web::websocket::SubProtocolContext socketContextUpgradeBase,
const std::string &  name 
)

Definition at line 58 of file Echo.cpp.

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

Here is the caller graph for this function:

Member Function Documentation

◆ onConnected()

void apps::websocket::subprotocol::echo::client::Echo::onConnected ( )
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >.

Definition at line 62 of file Echo.cpp.

62 {
63 VLOG(1) << "Echo connected";
64 }

◆ onDisconnected()

void apps::websocket::subprotocol::echo::client::Echo::onDisconnected ( )
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >.

Definition at line 93 of file Echo.cpp.

93 {
94 VLOG(1) << "Echo disconnected:";
95 }

◆ onMessageData()

void apps::websocket::subprotocol::echo::client::Echo::onMessageData ( const char *  chunk,
std::size_t  chunkLen 
)
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >.

Definition at line 70 of file Echo.cpp.

70 {
71 data += std::string(chunk, chunkLen);
72
73 VLOG(2) << "Message Fragment: " << std::string(chunk, chunkLen);
74 }

References data.

◆ onMessageEnd()

void apps::websocket::subprotocol::echo::client::Echo::onMessageEnd ( )
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >.

Definition at line 76 of file Echo.cpp.

76 {
77 VLOG(1) << "Message Full Data: " << data;
78 VLOG(1) << "Message End";
79 /*
80 forEachClient([&data = this->data](SubProtocol* client) {
81 client->sendMessage(data);
82 });
83 */
84 // sendMessage(data);
85
86 data.clear();
87 }

References data.

◆ onMessageError()

void apps::websocket::subprotocol::echo::client::Echo::onMessageError ( uint16_t  errnum)
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >.

Definition at line 89 of file Echo.cpp.

89 {
90 VLOG(1) << "Message error: " << errnum;
91 }

◆ onMessageStart()

void apps::websocket::subprotocol::echo::client::Echo::onMessageStart ( int  opCode)
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >.

Definition at line 66 of file Echo.cpp.

66 {
67 VLOG(2) << "Message Start - OpCode: " << opCode;
68 }

◆ onSignal()

bool apps::websocket::subprotocol::echo::client::Echo::onSignal ( int  sig)
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::client::SocketContextUpgrade >.

Definition at line 97 of file Echo.cpp.

97 {
98 VLOG(1) << "SubProtocol 'echo' exit due to '" << strsignal(sig) << "' (SIG" << utils::system::sigabbrev_np(sig) << " = " << sig
99 << ")";
100
101 sendClose();
102
103 return false;
104 }
void sendClose(uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0)
std::string sigabbrev_np(int sig)
Definition signal.cpp:59

References web::websocket::SubProtocol< SocketContextUpgradeT >::sendClose(), and utils::system::sigabbrev_np().

Here is the call graph for this function:

Member Data Documentation

◆ data

std::string apps::websocket::subprotocol::echo::client::Echo::data
private

Definition at line 74 of file Echo.h.

Referenced by onMessageData(), and onMessageEnd().


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