MQTTSuite
Loading...
Searching...
No Matches
mqtt::lib::ConfigApplication Class Reference

#include <ConfigApplication.h>

Inheritance diagram for mqtt::lib::ConfigApplication:
Collaboration diagram for mqtt::lib::ConfigApplication:

Public Member Functions

template<typename ConcretConfigApplicationT>
 ConfigApplication (utils::SubCommand *parent, ConcretConfigApplicationT *concretConfigApplication)
 ~ConfigApplication () override
ConfigApplicationsetSessionStore (const std::string &sessionStore)
std::string getSessionStore () const
bool setMappingFile (const std::string &mappingFile)
std::string getMappingFilename () const
bool setMapping (const nlohmann::json &json)
const std::shared_ptr< MqttMappergetMqttMapper () const
template<typename ConcretConfigApplication>
 ConfigApplication (utils::SubCommand *parent, ConcretConfigApplication *concretConfigApplication)

Protected Attributes

std::shared_ptr< MqttMappermqttMapper
CLI::Option * mappingFileOpt
CLI::Option * sessionStoreOpt

Detailed Description

Definition at line 62 of file ConfigApplication.h.

Constructor & Destructor Documentation

◆ ConfigApplication() [1/2]

template<typename ConcretConfigApplicationT>
mqtt::lib::ConfigApplication::ConfigApplication ( utils::SubCommand * parent,
ConcretConfigApplicationT * concretConfigApplication )

Referenced by mqtt::lib::ConfigMqttBroker::ConfigMqttBroker(), and mqtt::lib::ConfigMqttIntegrator::ConfigMqttIntegrator().

Here is the caller graph for this function:

◆ ~ConfigApplication()

mqtt::lib::ConfigApplication::~ConfigApplication ( )
overridedefault

◆ ConfigApplication() [2/2]

template<typename ConcretConfigApplication>
mqtt::lib::ConfigApplication::ConfigApplication ( utils::SubCommand * parent,
ConcretConfigApplication * concretConfigApplication )

Definition at line 56 of file ConfigApplication.cpp.

57 : utils::SubCommand(parent, concretConfigApplication, "Applications")
58 , mqttMapper(std::make_shared<MqttMapper>())
59 , mappingFileOpt( //
60 addOptionFunction( //
61 "--mqtt-mapping-file",
62 [this](const std::string& mappingFile) {
63 try {
64 mqttMapper->setMapping(JsonMappingReader::readMappingFromFile(mappingFile));
65 } catch (std::runtime_error& e) {
66 throw CLI::ValidationError(
67 getName(), std::string("Activating mapping description in '" + mappingFile + "' failed\nWhat: " + e.what()));
68 }
69 },
70 "MQTT mapping file (json format) for integration",
71 "filename",
72 !CLI::ExistingDirectory))
73 , sessionStoreOpt( //
74 addOption( //
75 "--mqtt-session-store",
76 "Path to file for the persistent session store",
77 "filename",
78 !CLI::ExistingDirectory)) {
79 }
std::shared_ptr< MqttMapper > mqttMapper
static nlohmann::json readMappingFromFile(const std::string &mapFilePath)

References mappingFileOpt, mqttMapper, mqtt::lib::JsonMappingReader::readMappingFromFile(), and mqtt::lib::MqttMapper::setMapping().

Here is the call graph for this function:

Member Function Documentation

◆ getMappingFilename()

std::string mqtt::lib::ConfigApplication::getMappingFilename ( ) const

Definition at line 99 of file ConfigApplication.cpp.

99 {
100 return mappingFileOpt->as<std::string>();
101 }

References mappingFileOpt.

Referenced by mqtt::lib::admin::makeMappingAdminRouter().

Here is the caller graph for this function:

◆ getMqttMapper()

const std::shared_ptr< MqttMapper > mqtt::lib::ConfigApplication::getMqttMapper ( ) const

Definition at line 109 of file ConfigApplication.cpp.

109 {
110 return mqttMapper;
111 }

References mqttMapper.

Referenced by mqtt::mqttbroker::SocketContextFactory::create(), mqtt::mqttintegrator::SocketContextFactory::create(), and mqtt::lib::admin::makeMappingAdminRouter().

Here is the caller graph for this function:

◆ getSessionStore()

std::string mqtt::lib::ConfigApplication::getSessionStore ( ) const

Definition at line 89 of file ConfigApplication.cpp.

89 {
90 return sessionStoreOpt->as<std::string>();
91 }

References sessionStoreOpt.

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

Here is the caller graph for this function:

◆ setMapping()

bool mqtt::lib::ConfigApplication::setMapping ( const nlohmann::json & json)

Definition at line 103 of file ConfigApplication.cpp.

103 { // can throw
104 required(mappingFileOpt, false);
105
106 return mqttMapper->setMapping(mappingJson);
107 }

References mappingFileOpt, mqttMapper, and mqtt::lib::MqttMapper::setMapping().

Referenced by mqtt::lib::admin::makeMappingAdminRouter(), and setMappingFile().

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

◆ setMappingFile()

bool mqtt::lib::ConfigApplication::setMappingFile ( const std::string & mappingFile)

Definition at line 93 of file ConfigApplication.cpp.

93 { // can throw
94 setDefaultValue(mappingFileOpt, mappingFile);
95
97 }
bool setMapping(const nlohmann::json &json)

References mappingFileOpt, mqtt::lib::JsonMappingReader::readMappingFromFile(), and setMapping().

Here is the call graph for this function:

◆ setSessionStore()

ConfigApplication & mqtt::lib::ConfigApplication::setSessionStore ( const std::string & sessionStore)

Definition at line 83 of file ConfigApplication.cpp.

83 {
84 setDefaultValue(sessionStoreOpt, sessionStore);
85
86 return *this;
87 }

References sessionStoreOpt.

Member Data Documentation

◆ mappingFileOpt

CLI::Option* mqtt::lib::ConfigApplication::mappingFileOpt
protected

◆ mqttMapper

std::shared_ptr<MqttMapper> mqtt::lib::ConfigApplication::mqttMapper
protected

Definition at line 79 of file ConfigApplication.h.

Referenced by ConfigApplication(), getMqttMapper(), and setMapping().

◆ sessionStoreOpt

CLI::Option* mqtt::lib::ConfigApplication::sessionStoreOpt
protected

Definition at line 82 of file ConfigApplication.h.

Referenced by getSessionStore(), and setSessionStore().


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