SNode.C
Loading...
Searching...
No Matches
MqttContext.h
Go to the documentation of this file.
1
/*
2
* SNode.C - A Slim Toolkit for Network Communication
3
* Copyright (C) Volker Christian <me@vchrist.at>
4
* 2020, 2021, 2022, 2023, 2024, 2025, 2026
5
*
6
* This program is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published
8
* by the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
/*
21
* MIT License
22
*
23
* Permission is hereby granted, free of charge, to any person obtaining a copy
24
* of this software and associated documentation files (the "Software"), to deal
25
* in the Software without restriction, including without limitation the rights
26
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
27
* copies of the Software, and to permit persons to whom the Software is
28
* furnished to do so, subject to the following conditions:
29
*
30
* The above copyright notice and this permission notice shall be included in
31
* all copies or substantial portions of the Software.
32
*
33
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
39
* THE SOFTWARE.
40
*/
41
42
#
ifndef
IOT_MQTT_MQTTCONTEXT_H
43
#
define
IOT_MQTT_MQTTCONTEXT_H
44
45
namespace
core::socket::
stream
{
46
class
SocketConnection
;
47
}
48
49
namespace
iot::mqtt {
50
class
Mqtt
;
51
}
52
53
#
ifndef
DOXYGEN_SHOULD_SKIP_THIS
54
55
#
include
<
cstddef
>
56
57
#
endif
// DOXYGEN_SHOULD_SKIP_THIS
58
59
namespace
iot::mqtt {
60
61
class
MqttContext
{
62
public
:
63
explicit
MqttContext
(
Mqtt
* mqtt);
64
// MqttContext(const MqttContext&) = default;
65
66
// MqttContext& operator=(const MqttContext&) = default;
67
68
virtual
~
MqttContext
();
69
70
virtual
std::size_t
recv
(
char
* chunk, std::size_t chunklen) = 0;
71
virtual
void
send
(
const
char
* chunk, std::size_t chunklen) = 0;
72
73
virtual
core::socket::
stream
::
SocketConnection
*
getSocketConnection
()
const
= 0;
74
75
virtual
void
end
() = 0;
76
virtual
void
close
() = 0;
77
78
void
onConnected
();
79
std::size_t
onReceivedFromPeer
();
80
void
onDisconnected
();
81
bool
onSignal
(
int
sig);
82
83
protected
:
84
Mqtt
*
mqtt
;
85
};
86
87
}
// namespace iot::mqtt
88
89
#
endif
// IOT_MQTT_MQTTCONTEXT_H
core::EventReceiver
Definition
EventReceiver.h:61
core::socket::stream::SocketConnection
Definition
SocketConnection.h:82
iot::mqtt::MqttContext
Definition
MqttContext.h:61
iot::mqtt::MqttContext::~MqttContext
virtual ~MqttContext()
Definition
MqttContext.cpp:57
iot::mqtt::MqttContext::onConnected
void onConnected()
Definition
MqttContext.cpp:61
iot::mqtt::MqttContext::recv
virtual std::size_t recv(char *chunk, std::size_t chunklen)=0
iot::mqtt::MqttContext::onSignal
bool onSignal(int sig)
Definition
MqttContext.cpp:73
iot::mqtt::MqttContext::end
virtual void end()=0
iot::mqtt::MqttContext::onReceivedFromPeer
std::size_t onReceivedFromPeer()
Definition
MqttContext.cpp:65
iot::mqtt::MqttContext::mqtt
Mqtt * mqtt
Definition
MqttContext.h:84
iot::mqtt::MqttContext::send
virtual void send(const char *chunk, std::size_t chunklen)=0
iot::mqtt::MqttContext::getSocketConnection
virtual core::socket::stream::SocketConnection * getSocketConnection() const =0
iot::mqtt::MqttContext::MqttContext
MqttContext(Mqtt *mqtt)
Definition
MqttContext.cpp:52
iot::mqtt::MqttContext::onDisconnected
void onDisconnected()
Definition
MqttContext.cpp:69
iot::mqtt::MqttContext::close
virtual void close()=0
iot::mqtt::Mqtt
Definition
Mqtt.h:74
iot::mqtt::OnReceivedFromPeerEvent
Definition
SubProtocol.h:72
iot::mqtt::OnReceivedFromPeerEvent::onEvent
void onEvent(const utils::Timeval ¤tTime) override
Definition
SubProtocol.cpp:55
iot::mqtt::OnReceivedFromPeerEvent::OnReceivedFromPeerEvent
OnReceivedFromPeerEvent(const std::function< void(const utils::Timeval &)> &onReceivedFromPeer)
Definition
SubProtocol.cpp:50
iot::mqtt::OnReceivedFromPeerEvent::onReceivedFromPeer
std::function< void(const utils::Timeval &)> onReceivedFromPeer
Definition
SubProtocol.h:79
iot::mqtt::SubProtocol
Definition
SubProtocol.h:85
iot::mqtt::SubProtocol::onMessageError
void onMessageError(uint16_t errnum) override
Definition
SubProtocol.hpp:146
iot::mqtt::SubProtocol::onSignal
bool onSignal(int sig) override
Definition
SubProtocol.hpp:157
iot::mqtt::SubProtocol::send
void send(const char *chunk, std::size_t chunklen) override
Definition
SubProtocol.hpp:89
iot::mqtt::SubProtocol::onDisconnected
void onDisconnected() override
Definition
SubProtocol.hpp:151
iot::mqtt::SubProtocol::data
std::string data
Definition
SubProtocol.h:112
iot::mqtt::SubProtocol::onConnected
void onConnected() override
Definition
SubProtocol.hpp:106
iot::mqtt::SubProtocol::close
void close() override
Definition
SubProtocol.hpp:99
iot::mqtt::SubProtocol::end
void end() override
Definition
SubProtocol.hpp:94
iot::mqtt::SubProtocol::WSSubProtocolRole
WSSubProtocolRoleT WSSubProtocolRole
Definition
SubProtocol.h:87
iot::mqtt::SubProtocol::getSocketConnection
core::socket::stream::SocketConnection * getSocketConnection() const override
Definition
SubProtocol.hpp:168
iot::mqtt::SubProtocol::recv
std::size_t recv(char *chunk, std::size_t chunklen) override
Definition
SubProtocol.hpp:77
iot::mqtt::SubProtocol::buffer
std::vector< char > buffer
Definition
SubProtocol.h:113
iot::mqtt::SubProtocol::cursor
std::size_t cursor
Definition
SubProtocol.h:114
iot::mqtt::SubProtocol::onReceivedFromPeerEvent
OnReceivedFromPeerEvent onReceivedFromPeerEvent
Definition
SubProtocol.h:110
iot::mqtt::SubProtocol::onMessageData
void onMessageData(const char *chunk, std::size_t chunkLen) override
Definition
SubProtocol.hpp:122
iot::mqtt::SubProtocol::SubProtocol
SubProtocol(web::websocket::SubProtocolContext *subProtocolContext, const std::string &name, iot::mqtt::Mqtt *mqtt)
Definition
SubProtocol.hpp:59
iot::mqtt::SubProtocol::onMessageEnd
void onMessageEnd() override
Definition
SubProtocol.hpp:130
iot::mqtt::SubProtocol::onMessageStart
void onMessageStart(int opCode) override
Definition
SubProtocol.hpp:112
iot::mqtt::SubProtocol::size
std::size_t size
Definition
SubProtocol.h:115
iot::mqtt::SubProtocol::~SubProtocol
~SubProtocol() override=default
utils::Timeval
Definition
Timeval.h:58
web::websocket::SubProtocolContext
Definition
SubProtocolContext.h:64
web::websocket::client::SubProtocol
Definition
SubProtocol.h:59
core::socket
Definition
EchoSocketContext.h:48
iot::mqtt::client::SubProtocol
iot::mqtt::SubProtocol< web::websocket::client::SubProtocol > SubProtocol
Definition
SubProtocol.h:56
iot::mqtt
Definition
ControlPacketDeserializer.cpp:48
web::websocket::client
Definition
SocketContextUpgrade.cpp:52
web::websocket
Definition
Echo.h:47
iot
mqtt
MqttContext.h
Generated on
for SNode.C by
1.15.0