MQTTSuite
Loading...
Searching...
No Matches
mqtt::mqttintegrator::lib::Mqtt Class Reference

#include <Mqtt.h>

Inheritance diagram for mqtt::mqttintegrator::lib::Mqtt:
Collaboration diagram for mqtt::mqttintegrator::lib::Mqtt:

Public Member Functions

 Mqtt (const std::string &connectionName, const nlohmann::json &connectionJson, const nlohmann::json &mappingJson, const std::string &sessionStoreFileName)
Public Member Functions inherited from mqtt::lib::MqttMapper
 MqttMapper (const nlohmann::json &mappingJson)
 MqttMapper (const MqttMapper &)=delete
MqttMapperoperator= (const MqttMapper &)=delete
virtual ~MqttMapper ()

Private Types

using Super = iot::mqtt::client::Mqtt

Private Member Functions

void onConnected () final
bool onSignal (int signum) final
void onConnack (const iot::mqtt::packets::Connack &connack) final
void onPublish (const iot::mqtt::packets::Publish &publish) final
void publishMapping (const std::string &topic, const std::string &message, uint8_t qoS, bool retain) final

Private Attributes

const nlohmann::json & connectionJson

Additional Inherited Members

Protected Member Functions inherited from mqtt::lib::MqttMapper
std::string dump ()
std::list< iot::mqtt::Topic > extractSubscriptions ()
void publishMappings (const iot::mqtt::packets::Publish &publish)

Detailed Description

Definition at line 58 of file Mqtt.h.

Member Typedef Documentation

◆ Super

using mqtt::mqttintegrator::lib::Mqtt::Super = iot::mqtt::client::Mqtt
private

Definition at line 68 of file Mqtt.h.

Constructor & Destructor Documentation

◆ Mqtt()

mqtt::mqttintegrator::lib::Mqtt::Mqtt ( const std::string & connectionName,
const nlohmann::json & connectionJson,
const nlohmann::json & mappingJson,
const std::string & sessionStoreFileName )
explicit

Definition at line 60 of file Mqtt.cpp.

64 : iot::mqtt::client::Mqtt(connectionName, //
65 connectionJson["client_id"],
66 connectionJson["keep_alive"],
67 sessionStoreFileName)
68 , mqtt::lib::MqttMapper(mappingJson)
70 VLOG(1) << "Client Id: " << clientId;
71 VLOG(1) << " Keep Alive: " << keepAlive;
72 VLOG(1) << " Clean Session: " << connectionJson["clean_session"];
73 VLOG(1) << " Will Topic: " << connectionJson["will_topic"];
74 VLOG(1) << " Will Message: " << connectionJson["will_message"];
75 VLOG(1) << " Will QoS: " << static_cast<uint16_t>(connectionJson["will_qos"]);
76 VLOG(1) << " Will Retain " << connectionJson["will_retain"];
77 VLOG(1) << " Username: " << connectionJson["username"];
78 VLOG(1) << " Password: " << connectionJson["password"];
79 }
const nlohmann::json & mappingJson
Definition MqttMapper.h:99
const nlohmann::json & connectionJson
Definition Mqtt.h:78

References connectionJson, and mqtt::lib::MqttMapper::MqttMapper().

Referenced by mqtt::mqttintegrator::SocketContextFactory::create().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ onConnack()

void mqtt::mqttintegrator::lib::Mqtt::onConnack ( const iot::mqtt::packets::Connack & connack)
finalprivate

Definition at line 102 of file Mqtt.cpp.

102 {
103 if (connack.getReturnCode() == 0 && !connack.getSessionPresent()) {
104 sendPublish("snode.c/_cfg_/connection", connectionJson.dump(), 0, true);
105
106 const std::list<iot::mqtt::Topic> topicList = MqttMapper::extractSubscriptions();
107
108 for (const iot::mqtt::Topic& topic : topicList) {
109 VLOG(1) << "MQTT: Subscribe Topic: " << topic.getName() << ", qoS: " << static_cast<uint16_t>(topic.getQoS());
110 }
111
112 sendSubscribe(topicList);
113 }
114 }

References connectionJson, and mqtt::lib::MqttMapper::extractSubscriptions().

Here is the call graph for this function:

◆ onConnected()

void mqtt::mqttintegrator::lib::Mqtt::onConnected ( )
finalprivate

Definition at line 81 of file Mqtt.cpp.

81 {
82 VLOG(1) << "MQTT: Initiating Session";
83
84 sendConnect(connectionJson["clean_session"],
85 connectionJson["will_topic"],
86 connectionJson["will_message"],
87 connectionJson["will_qos"],
88 connectionJson["will_retain"],
89 connectionJson["username"],
90 connectionJson["password"]);
91 }

References connectionJson.

◆ onPublish()

void mqtt::mqttintegrator::lib::Mqtt::onPublish ( const iot::mqtt::packets::Publish & publish)
finalprivate

Definition at line 116 of file Mqtt.cpp.

116 {
117 publishMappings(publish);
118 }
void publishMappings(const iot::mqtt::packets::Publish &publish)

References mqtt::lib::MqttMapper::publishMappings().

Here is the call graph for this function:

◆ onSignal()

bool mqtt::mqttintegrator::lib::Mqtt::onSignal ( int signum)
nodiscardfinalprivate

Definition at line 93 of file Mqtt.cpp.

93 {
94 VLOG(1) << "MQTT: On Exit due to '" << strsignal(signum) << "' (SIG" << utils::system::sigabbrev_np(signum) << " = " << signum
95 << ")";
96
97 sendDisconnect();
98
99 return Super::onSignal(signum);
100 }

◆ publishMapping()

void mqtt::mqttintegrator::lib::Mqtt::publishMapping ( const std::string & topic,
const std::string & message,
uint8_t qoS,
bool retain )
finalprivatevirtual

Implements mqtt::lib::MqttMapper.

Definition at line 120 of file Mqtt.cpp.

120 {
121 sendPublish(topic, message, qoS, retain);
122 }

Member Data Documentation

◆ connectionJson

const nlohmann::json& mqtt::mqttintegrator::lib::Mqtt::connectionJson
private

Definition at line 78 of file Mqtt.h.

Referenced by Mqtt(), onConnack(), and onConnected().


The documentation for this class was generated from the following files: