2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20#ifndef IOT_MQTT_SERVER_BROKER_TOPICTREE_H
21#define IOT_MQTT_SERVER_BROKER_TOPICTREE_H
23#include "iot/mqtt/server/broker/Message.h"
25namespace iot::mqtt::server::
broker {
29#ifndef DOXYGEN_SHOULD_SKIP_THIS
33#include <nlohmann/json_fwd.hpp>
38namespace iot::mqtt::server::
broker {
45 void appear(
const std::string& clientId,
const std::string& topic, uint8_t qoS);
48 void fromJson(
const nlohmann::json& json);
58 bool release(std::string topic);
60 void appear(
const std::string& clientId, std::string topic, uint8_t qoS);
68 void appear(
const std::string& clientId, uint8_t clientQoS);
#define SUBSCRIBTION_MAX_QOS
SocketContextFactory()=default
virtual core::socket::stream::SocketContext * create(core::socket::stream::SocketConnection *socketConnection, std::shared_ptr< iot::mqtt::server::broker::Broker > broker)=0
core::socket::stream::SocketContext * create(core::socket::stream::SocketConnection *socketConnection) final
void restartSession(const std::string &clientId)
std::string sessionStoreFileName
uint8_t subscribe(const std::string &clientId, const std::string &topic, uint8_t qoS)
bool hasActiveSession(const std::string &clientId)
static std::shared_ptr< Broker > instance(uint8_t maxQoS)
bool isActiveSession(const std::string &clientId, const Mqtt *mqtt)
iot::mqtt::server::broker::RetainTree retainTree
void publish(const std::string &originClientId, const std::string &topic, const std::string &message, uint8_t qoS, bool retain)
bool hasSession(const std::string &clientId)
void appear(const std::string &clientId, const std::string &topic, uint8_t qoS)
void unsubscribe(const std::string &clientId, const std::string &topic)
Session * renewSession(const std::string &clientId, iot::mqtt::server::Mqtt *mqtt)
void deleteSession(const std::string &clientId)
void unsubscribe(const std::string &clientId)
bool hasRetainedSession(const std::string &clientId)
iot::mqtt::server::broker::SubscribtionTree subscribtionTree
Session * newSession(const std::string &clientId, iot::mqtt::server::Mqtt *mqtt)
void sendPublish(const std::string &clientId, Message &message, uint8_t qoS, bool retain)
void retainSession(const std::string &clientId)
void retain(const Message &message, std::string topic)
void appear(const std::string &clientId, uint8_t clientQoS)
TopicLevel(iot::mqtt::server::broker::Broker *broker)
TopicLevel & fromJson(const nlohmann::json &json)
void appear(const std::string &clientId, std::string topic, uint8_t qoS)
nlohmann::json toJson() const
bool release(std::string topic)
void appear(const std::string &clientId, const std::string &topic, uint8_t qoS)
void retain(Message &&message)
void fromJson(const nlohmann::json &json)
RetainTree(iot::mqtt::server::broker::Broker *broker)
nlohmann::json toJson() const