#include <MqttMapper.h>
Classes | |
| struct | ScheduledPublish |
Public Types | |
| using | MappedPublishes = std::tuple<std::vector<iot::mqtt::packets::Publish>, std::vector<ScheduledPublish>> |
| using | ConnectParameter = std::tuple<bool, std::string, std::string, uint8_t, bool, std::string, std::string> |
Public Member Functions | |
| MqttMapper () | |
| MqttMapper (const MqttMapper &)=delete | |
| MqttMapper & | operator= (const MqttMapper &)=delete |
| virtual | ~MqttMapper () |
| bool | setMapping (nlohmann::json mappingJson) |
| const nlohmann::json & | getMapping () const |
| std::string | getClientId () const |
| uint16_t | getKeepAlive () const |
| ConnectParameter | getConnectPayload () const |
| std::list< iot::mqtt::Topic > | extractSubscriptions () const |
| MappedPublishes | getMappings (const iot::mqtt::packets::Publish &publish) |
Static Public Member Functions | |
| static const std::string & | getSchema () |
| static const nlohmann::json | validate (const nlohmann::json &json) |
| static const nlohmann::json | validate (const nlohmann::json &json, nlohmann::json_schema::basic_error_handler &err) |
Private Member Functions | |
| nlohmann::json | findMatchingTopicLevel (const nlohmann::json &topicLevel, const std::string &topic) const |
| void | getMappedTemplate (const nlohmann::json &templateMapping, nlohmann::json &json, MappedPublishes &mappedPublishes) const |
| void | getTemplateMappings (const nlohmann::json &templateMapping, nlohmann::json &json, const iot::mqtt::packets::Publish &publish, MappedPublishes &mappedPublishes) const |
Static Private Member Functions | |
| static void | extractSubscription (const nlohmann::json &topicLevelJson, const std::string &topic, std::list< iot::mqtt::Topic > &topicList) |
| static void | extractSubscriptions (const nlohmann::json &mappingJson, const std::string &topic, std::list< iot::mqtt::Topic > &topicList) |
| static void | getStaticMappings (const nlohmann::json &staticMapping, const iot::mqtt::packets::Publish &publish, MappedPublishes &mappedPublishes) |
| static void | getMappedMessage (const std::string &topic, const std::string &message, uint8_t qoS, bool retain, double delay, MappedPublishes &mappedPublishes) |
| static void | getMappedMessage (const nlohmann::json &staticMapping, const iot::mqtt::packets::Publish &publish, MappedPublishes &mappedPublishes) |
Private Attributes | |
| nlohmann::json | mappingJson |
| nlohmann::json | mappingJsonUnpatched |
| std::list< void * > | pluginHandles |
| inja::Environment * | injaEnvironment |
Static Private Attributes | |
| static const nlohmann::json_schema::json_validator | validator |
| static const std::string | mappingJsonSchemaString |
Definition at line 76 of file MqttMapper.h.
| using mqtt::lib::MqttMapper::ConnectParameter = std::tuple<bool, std::string, std::string, uint8_t, bool, std::string, std::string> |
Definition at line 84 of file MqttMapper.h.
| using mqtt::lib::MqttMapper::MappedPublishes = std::tuple<std::vector<iot::mqtt::packets::Publish>, std::vector<ScheduledPublish>> |
Definition at line 83 of file MqttMapper.h.
| mqtt::lib::MqttMapper::MqttMapper | ( | ) |
Definition at line 99 of file MqttMapper.cpp.
References injaEnvironment, and setMapping().
|
delete |
|
virtual |
Definition at line 104 of file MqttMapper.cpp.
References injaEnvironment.
|
staticprivate |
Definition at line 307 of file MqttMapper.cpp.
Referenced by extractSubscriptions().
| std::list< iot::mqtt::Topic > mqtt::lib::MqttMapper::extractSubscriptions | ( | ) | const |
Definition at line 232 of file MqttMapper.cpp.
Referenced by mqtt::mqttintegrator::lib::Mqtt::Mqtt(), and mqtt::mqttintegrator::lib::Mqtt::resubscribe().
|
staticprivate |
Definition at line 324 of file MqttMapper.cpp.
References extractSubscription().
|
private |
Definition at line 338 of file MqttMapper.cpp.
References findMatchingTopicLevel().
Referenced by findMatchingTopicLevel(), and getMappings().
| std::string mqtt::lib::MqttMapper::getClientId | ( | ) | const |
Definition at line 212 of file MqttMapper.cpp.
Referenced by mqtt::mqttintegrator::lib::Mqtt::Mqtt().
| MqttMapper::ConnectParameter mqtt::lib::MqttMapper::getConnectPayload | ( | ) | const |
Definition at line 220 of file MqttMapper.cpp.
Referenced by mqtt::mqttintegrator::lib::Mqtt::onConnected().
| uint16_t mqtt::lib::MqttMapper::getKeepAlive | ( | ) | const |
Definition at line 216 of file MqttMapper.cpp.
Referenced by mqtt::mqttintegrator::lib::Mqtt::Mqtt().
|
staticprivate |
Definition at line 477 of file MqttMapper.cpp.
Referenced by getStaticMappings().
|
staticprivate |
Definition at line 457 of file MqttMapper.cpp.
Referenced by getMappedTemplate().
|
private |
Definition at line 366 of file MqttMapper.cpp.
References inja::SourceLocation::column, getMappedMessage(), injaEnvironment, inja::SourceLocation::line, inja::InjaError::location, inja::InjaError::message, inja::Environment::render(), and inja::InjaError::type.
Referenced by getTemplateMappings().
| const nlohmann::json & mqtt::lib::MqttMapper::getMapping | ( | ) | const |
Definition at line 208 of file MqttMapper.cpp.
References mappingJsonUnpatched.
Referenced by mqtt::lib::ConfigApplication::getMapping(), and mqtt::lib::admin::makeMappingAdminRouter().
| MqttMapper::MappedPublishes mqtt::lib::MqttMapper::getMappings | ( | const iot::mqtt::packets::Publish & | publish | ) |
Definition at line 240 of file MqttMapper.cpp.
References findMatchingTopicLevel(), getStaticMappings(), and getTemplateMappings().
Referenced by mqtt::mqttbroker::lib::Mqtt::onPublish(), and mqtt::mqttintegrator::lib::Mqtt::onPublish().
|
static |
Definition at line 112 of file MqttMapper.cpp.
References mappingJsonSchemaString.
Referenced by mqtt::lib::admin::makeMappingAdminRouter().
|
staticprivate |
Definition at line 445 of file MqttMapper.cpp.
References getMappedMessage().
Referenced by getMappings().
|
private |
Definition at line 421 of file MqttMapper.cpp.
References getMappedTemplate().
Referenced by getMappings().
|
delete |
| bool mqtt::lib::MqttMapper::setMapping | ( | nlohmann::json | mappingJson | ) |
Definition at line 116 of file MqttMapper.cpp.
References injaEnvironment, mappingJson, mappingJsonUnpatched, pluginHandles, nlohmann::json_schema::json_validator::validate(), and validator.
Referenced by mqtt::lib::admin::makeMappingAdminRouter(), MqttMapper(), and mqtt::lib::ConfigApplication::setMapping().
|
static |
Definition at line 299 of file MqttMapper.cpp.
References nlohmann::json_schema::json_validator::validate(), and validator.
Referenced by mqtt::lib::JsonMappingReader::rollbackTo().
|
static |
Definition at line 303 of file MqttMapper.cpp.
References nlohmann::json_schema::json_validator::validate(), and validator.
Referenced by mqtt::lib::admin::makeMappingAdminRouter().
|
private |
Definition at line 134 of file MqttMapper.h.
Referenced by getMappedTemplate(), MqttMapper(), setMapping(), and ~MqttMapper().
|
private |
Definition at line 129 of file MqttMapper.h.
Referenced by setMapping().
|
staticprivate |
Definition at line 138 of file MqttMapper.h.
Referenced by getSchema().
|
private |
Definition at line 130 of file MqttMapper.h.
Referenced by getMapping(), and setMapping().
|
private |
Definition at line 132 of file MqttMapper.h.
Referenced by setMapping().
|
staticprivate |
Definition at line 136 of file MqttMapper.h.
Referenced by setMapping(), validate(), and validate().