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
void sendMessage (const char *message, std::size_t messageLength) const
void sendMessage (const std::string &message) const
void sendMessageEnd (const char *message, std::size_t messageLength) const
void sendMessageEnd (const std::string &message) const
void sendMessageFrame (const char *message, std::size_t messageLength) const
void sendMessageFrame (const std::string &message) const
void sendMessageStart (const char *message, std::size_t messageLength) const
void sendMessageStart (const std::string &message) const
void sendClose (uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0)
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
std::size_t getPayloadTotalSent () const
std::size_t getPayloadTotalRead () const
std::string getOnlineSince () const
std::string getOnlineDuration () 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.

59 : web::websocket::client::SubProtocol(socketContextUpgradeBase, name, PING_INTERVAL, MAX_FLYING_PINGS) {
60 }
#define MAX_FLYING_PINGS
Definition Echo.cpp:53
#define PING_INTERVAL
Definition Echo.cpp:54

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
65 sendMessage("Welcome to SimpleChat");
66 sendMessage("=====================");
67 }
void sendMessage(const char *message, std::size_t messageLength) const

References web::websocket::SubProtocol< SocketContextUpgradeT >::sendMessage().

Here is the call graph for this function:

◆ onDisconnected()

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

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

Definition at line 92 of file Echo.cpp.

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

◆ 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 73 of file Echo.cpp.

73 {
74 data += std::string(chunk, chunkLen);
75
76 VLOG(2) << "Message Fragment: " << std::string(chunk, chunkLen);
77 }

References data.

◆ onMessageEnd()

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

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

Definition at line 79 of file Echo.cpp.

79 {
80 VLOG(1) << "Message Data: " << data;
81
82 // To do ping-pong
83 // sendMessage(data);
84
85 data.clear();
86 }

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 88 of file Echo.cpp.

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

◆ onMessageStart()

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

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

Definition at line 69 of file Echo.cpp.

69 {
70 VLOG(2) << "Message Start - OpCode: " << opCode;
71 }

◆ onSignal()

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

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

Definition at line 96 of file Echo.cpp.

96 {
97 VLOG(1) << "SubProtocol 'echo' exit due to '" << strsignal(sig) << "' (SIG" << utils::system::sigabbrev_np(sig) << " = " << sig
98 << ")";
99
100 sendClose();
101
102 return false;
103 }
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:
  • apps/websocket/subprotocol/client/echo/Echo.h
  • apps/websocket/subprotocol/client/echo/Echo.cpp