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_TRANSMITTER_H
43#define WEB_WEBSOCKET_TRANSMITTER_H
45namespace core::socket::
stream {
51#ifndef DOXYGEN_SHOULD_SKIP_THIS
73 void sendMessage(uint8_t opCode,
const char* message, std::size_t messageLength);
75 void sendMessageStart(uint8_t opCode,
const char* message, std::size_t messageLength);
77 void sendMessageEnd(
const char* message, std::size_t messageLength);
80 void send(
bool end, uint8_t opCode,
const char* message, std::size_t messageLength);
82 void sendFrame(
bool fin, uint8_t opCode,
const char* payload, uint64_t payloadLength);
88 void sendFrameData(
const char* frame, uint64_t frameLength)
const;
91 std::uniform_int_distribution<uint32_t>
distribution{0, UINT32_MAX};
virtual std::size_t recv(char *chunk, std::size_t chunklen)=0
std::size_t onReceivedFromPeer()
MqttContext(const MqttContext &)=default
MqttContext & operator=(const MqttContext &)=default
virtual void send(const char *chunk, std::size_t chunklen)=0
virtual core::socket::stream::SocketConnection * getSocketConnection() const =0
virtual void end(bool fatal=false)=0
void onEvent(const utils::Timeval ¤tTime) override
OnReceivedFromPeerEvent(const std::function< void(const utils::Timeval &)> &onReceivedFromPeer)
std::function< void(const utils::Timeval &)> onReceivedFromPeer
void onMessageError(uint16_t errnum) override
bool onSignal(int sig) override
void send(const char *chunk, std::size_t chunklen) override
void onDisconnected() override
void onConnected() override
void end(bool fatal=false) override
core::socket::stream::SocketConnection * getSocketConnection() const override
std::size_t recv(char *chunk, std::size_t chunklen) override
std::vector< char > buffer
OnReceivedFromPeerEvent onReceivedFromPeerEvent
void onMessageData(const char *chunk, std::size_t chunkLen) override
SubProtocol(web::websocket::SubProtocolContext *subProtocolContext, const std::string &name, iot::mqtt::Mqtt *mqtt)
void onMessageEnd() override
void onMessageStart(int opCode) override
~SubProtocol() override=default
std::size_t readELength2()
virtual void onMessageEnd()=0
virtual void onMessageStart(int opCode)=0
uint8_t maskingKeyNumBytes
std::size_t readMaskingKey()
Receiver & operator=(const Receiver &)=delete
std::size_t readELength()
std::size_t readFrameData(char *chunk, std::size_t chunkLen)
virtual void onMessageData(const char *chunk, uint64_t chunkLen)=0
uint8_t elengthNumBytesLeft
Receiver(core::socket::stream::SocketConnection *socketConnection)
virtual void onMessageError(uint16_t errnum)=0
core::socket::stream::SocketConnection * socketConnection
std::size_t readPayload()
Receiver(const Receiver &)=delete
uint8_t maskingKeyNumBytesLeft
std::size_t readELength8()
uint64_t payLoadNumBytesLeft
virtual void sendMessage(uint8_t opCode, const char *message, std::size_t messageLength)=0
virtual void sendPing(const char *reason=nullptr, std::size_t reasonLength=0)=0
virtual void sendMessageFrame(const char *message, std::size_t messageLength)=0
SubProtocolContext & operator=(const SubProtocolContext &)=delete
~SubProtocolContext() override
virtual void sendPong(const char *reason=nullptr, std::size_t reasonLength=0)=0
virtual void sendClose(const char *message, std::size_t messageLength)=0
SubProtocolContext(core::socket::stream::SocketConnection *socketConnection, bool role)
virtual void sendMessageEnd(const char *message, std::size_t messageLength)=0
virtual void sendClose(uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0)=0
virtual void sendMessageStart(uint8_t opCode, const char *message, std::size_t messageLength)=0
virtual core::socket::stream::SocketConnection * getSocketConnection()=0
SubProtocolContext(const SubProtocolContext &)=delete
void sendMessageEnd(const char *message, std::size_t messageLength)
void sendFrameData(const char *frame, uint64_t frameLength) const
Transmitter & operator=(const Transmitter &)=delete
std::random_device randomDevice
void sendFrameData(uint8_t data) const
void sendFrameData(uint16_t data) const
void sendMessage(uint8_t opCode, const char *message, std::size_t messageLength)
void sendFrameData(uint32_t data) const
Transmitter(core::socket::stream::SocketConnection *socketConnection, bool masking)
core::socket::stream::SocketConnection * socketConnection
void send(bool end, uint8_t opCode, const char *message, std::size_t messageLength)
void sendFrame(bool fin, uint8_t opCode, const char *payload, uint64_t payloadLength)
void sendFrameData(uint64_t data) const
std::uniform_int_distribution< uint32_t > distribution
Transmitter(const Transmitter &)=delete
void sendMessageStart(uint8_t opCode, const char *message, std::size_t messageLength)
void sendMessageFrame(const char *message, std::size_t messageLength)
sighandler_t signal(int sig, sighandler_t handler)
std::string sigabbrev_np(int sig)
std::string hexDump(const std::vector< char > &bytes, int prefixLength, bool prefixAtFirstLine)