2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
44#ifndef MQTTBROKER_LIB_MQTT_H
45#define MQTTBROKER_LIB_MQTT_H
47#include <iot/mqtt/server/Mqtt.h>
62#ifndef DOXYGEN_SHOULD_SKIP_THIS
73namespace mqtt::mqttbroker::
lib {
77 explicit Mqtt(
const std::string& connectionName,
78 const std::shared_ptr<iot::
mqtt::server::
broker::Broker>& broker,
81 void subscribe(
const std::string& topic, uint8_t qoS);
MappedPublishes getMappings(const iot::mqtt::packets::Publish &publish)
std::pair< std::vector< iot::mqtt::packets::Publish >, std::vector< ScheduledPublish > > MappedPublishes
void connectClient(Mqtt *mqtt)
void publishMessage(const std::string &topic, const std::string &message, uint8_t qoS, bool retain)
static MqttModel & instance()
void unsubscribeClient(const std::string &clientId, const std::string &topic)
void subscribeClient(const std::string &clientId, const std::string &topic, const uint8_t qos)
void disconnectClient(const std::string &clientId)
void delayPublish(const utils::Timeval &delay, const iot::mqtt::packets::Publish &publish)
const ScheduledPublish & top() const
std::priority_queue< ScheduledPublish, std::vector< ScheduledPublish >, EarlierFirst > minHeap
core::timer::Timer delayTimer
void unsubscribe(const std::string &topic)
void onPublish(const iot::mqtt::packets::Publish &publish) final
void onConnect(const iot::mqtt::packets::Connect &connect) final
void subscribe(const std::string &topic, uint8_t qoS)
void onDisconnected() final
std::shared_ptr< mqtt::lib::MqttMapper > mqttMapper
void onSubscribe(const iot::mqtt::packets::Subscribe &subscribe) final
void onUnsubscribe(const iot::mqtt::packets::Unsubscribe &unsubscribe) final
Mqtt(const std::string &connectionName, const std::shared_ptr< iot::mqtt::server::broker::Broker > &broker, const std::shared_ptr< mqtt::lib::MqttMapper > &mqttMapper)
DelayedQueue delayedQueue
iot::mqtt::packets::Publish publish
bool operator()(const ScheduledPublish &a, const ScheduledPublish &b) const
iot::mqtt::packets::Publish publish