MQTTSuite
Loading...
Searching...
No Matches
mqtt::mqttcli::websocket::SubProtocolFactory Class Reference

#include <SubProtocolFactory.h>

Inheritance diagram for mqtt::mqttcli::websocket::SubProtocolFactory:
Collaboration diagram for mqtt::mqttcli::websocket::SubProtocolFactory:

Public Member Functions

 SubProtocolFactory ()

Private Member Functions

iot::mqtt::client::SubProtocol * create (web::websocket::SubProtocolContext *subProtocolContext) override

Detailed Description

Definition at line 54 of file SubProtocolFactory.h.

Constructor & Destructor Documentation

◆ SubProtocolFactory()

mqtt::mqttcli::websocket::SubProtocolFactory::SubProtocolFactory ( )
explicit

Definition at line 63 of file SubProtocolFactory.cpp.

64 : web::websocket::SubProtocolFactory<iot::mqtt::client::SubProtocol>::SubProtocolFactory(NAME) {
65 }
#define NAME

Referenced by mqttClientSubProtocolFactory().

Here is the caller graph for this function:

Member Function Documentation

◆ create()

iot::mqtt::client::SubProtocol * mqtt::mqttcli::websocket::SubProtocolFactory::create ( web::websocket::SubProtocolContext * subProtocolContext)
overrideprivate

Definition at line 67 of file SubProtocolFactory.cpp.

67 {
68 const CLI::App* sessionApp = subProtocolContext->getSocketConnection()->getConfigInstance()->getSection("session", true, true);
69 const CLI::App* subApp = subProtocolContext->getSocketConnection()->getConfigInstance()->getSection("sub", true, true);
70 const CLI::App* pubApp = subProtocolContext->getSocketConnection()->getConfigInstance()->getSection("pub", true, true);
71
72 subApp = (subApp != nullptr && (*subApp)["--topic"]->count() > 0) ? subApp : nullptr;
73 pubApp = (pubApp != nullptr && (*pubApp)["--topic"]->count() > 0 && (*pubApp)["--message"]->count() > 0) ? pubApp : nullptr;
74
75 iot::mqtt::client::SubProtocol* subProtocol = nullptr;
76
77 if (subApp != nullptr || pubApp != nullptr) {
78 subProtocol = new iot::mqtt::client::SubProtocol(
79 subProtocolContext,
80 getName(),
81 new ::mqtt::mqttcli::lib::Mqtt(subProtocolContext->getSocketConnection()->getConnectionName(),
82 sessionApp != nullptr ? sessionApp->get_option("--client-id")->as<std::string>() : "",
83 sessionApp != nullptr ? sessionApp->get_option("--qos")->as<uint8_t>() : 0,
84 sessionApp != nullptr ? sessionApp->get_option("--keep-alive")->as<uint16_t>() : 60,
85 sessionApp != nullptr ? !sessionApp->get_option("--retain-session")->as<bool>() : true,
86 sessionApp != nullptr ? sessionApp->get_option("--will-topic")->as<std::string>() : "",
87 sessionApp != nullptr ? sessionApp->get_option("--will-message")->as<std::string>() : "",
88 sessionApp != nullptr ? sessionApp->get_option("--will-qos")->as<uint8_t>() : 0,
89 sessionApp != nullptr ? sessionApp->get_option("--will-retain")->as<bool>() : false,
90 sessionApp != nullptr ? sessionApp->get_option("--username")->as<std::string>() : "",
91 sessionApp != nullptr ? sessionApp->get_option("--password")->as<std::string>() : "",
92 subApp != nullptr ? subApp->get_option("--topic")->as<std::list<std::string>>()
93 : std::list<std::string>(),
94 pubApp != nullptr ? pubApp->get_option("--topic")->as<std::string>() : "",
95 pubApp != nullptr ? pubApp->get_option("--message")->as<std::string>() : "",
96 pubApp != nullptr ? pubApp->get_option("--retain")->as<bool>() : false));
97 } else {
98 VLOG(0) << "[" << Color::Code::FG_RED << "Error" << Color::Code::FG_DEFAULT << "] "
99 << subProtocolContext->getSocketConnection()->getConnectionName() << ": one of 'sub' or 'pub' is required";
100 }
101
102 return subProtocol;
103 }

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