MQTTSuite
Loading...
Searching...
No Matches
mqtt::bridge::lib::Bridge Class Reference

#include <Bridge.h>

Collaboration diagram for mqtt::bridge::lib::Bridge:

Public Member Functions

 Bridge (const std::string &name, const std::string &prefix, bool disabled)
void clear ()
const std::string & getName () const
void addBroker (const std::string &fullInstanceName, Broker &&broker)
BrokergetBroker (const std::string &fullInstanceName)
const std::map< const std::string, Broker > & getBrokerMap () const
void addMqtt (mqtt::bridge::lib::Mqtt *mqtt)
void removeMqtt (mqtt::bridge::lib::Mqtt *mqtt)
void publish (const mqtt::bridge::lib::Mqtt *originMqtt, const iot::mqtt::packets::Publish &publish)
const std::list< const mqtt::bridge::lib::Mqtt * > & getMqttList () const
const std::string & getPrefix () const
bool getDisabled () const
bool getAllConnected1 () const
bool operator< (const Bridge &rhs) const

Private Attributes

std::string name
std::string prefix
bool disabled
std::size_t enabledBroker = 0
std::map< const std::string, BrokerbrokerMap
std::list< const mqtt::bridge::lib::Mqtt * > mqttList

Detailed Description

Definition at line 68 of file Bridge.h.

Constructor & Destructor Documentation

◆ Bridge()

mqtt::bridge::lib::Bridge::Bridge ( const std::string & name,
const std::string & prefix,
bool disabled )
explicit

Definition at line 61 of file Bridge.cpp.

62 : name(name)
63 , prefix(prefix)
65 }

References disabled, name, and prefix.

Member Function Documentation

◆ addBroker()

void mqtt::bridge::lib::Bridge::addBroker ( const std::string & fullInstanceName,
Broker && broker )

Definition at line 71 of file Bridge.cpp.

71 {
72 enabledBroker += !broker.getDisabled() ? 1 : 0;
73
74 brokerMap.emplace(fullInstanceName, std::move(broker));
75 }
std::size_t enabledBroker
Definition Bridge.h:101
std::map< const std::string, Broker > brokerMap
Definition Bridge.h:103

References brokerMap, enabledBroker, and mqtt::bridge::lib::Broker::getDisabled().

Here is the call graph for this function:

◆ addMqtt()

void mqtt::bridge::lib::Bridge::addMqtt ( mqtt::bridge::lib::Mqtt * mqtt)

Definition at line 85 of file Bridge.cpp.

85 {
86 mqttList.push_back(mqtt);
87
89 mqtt->getMqttContext()->getSocketConnection()->getInstanceName());
90
91 if (mqttList.size() == enabledBroker) {
93 }
94 }
std::list< const mqtt::bridge::lib::Mqtt * > mqttList
Definition Bridge.h:104
void brokerConnected(const std::string &bridgeName, const std::string &instanceName)
void bridgeStarted(const std::string &bridgeName)
static SSEDistributor & instance()

References mqtt::bridge::lib::SSEDistributor::bridgeStarted(), mqtt::bridge::lib::SSEDistributor::brokerConnected(), enabledBroker, mqtt::bridge::lib::SSEDistributor::instance(), mqttList, and name.

Referenced by mqtt::bridge::lib::BridgeStore::mqttConnected().

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

◆ clear()

void mqtt::bridge::lib::Bridge::clear ( )
inline

Definition at line 72 of file Bridge.h.

72 {
73 brokerMap.clear();
74 }

References brokerMap.

◆ getAllConnected1()

bool mqtt::bridge::lib::Bridge::getAllConnected1 ( ) const

Definition at line 129 of file Bridge.cpp.

129 {
130 return mqttList.size() == enabledBroker || disabled;
131 }

References disabled, enabledBroker, and mqttList.

◆ getBroker()

Broker * mqtt::bridge::lib::Bridge::getBroker ( const std::string & fullInstanceName)

Definition at line 77 of file Bridge.cpp.

77 {
78 return &brokerMap.find(fullInstanceName)->second;
79 }

References brokerMap.

◆ getBrokerMap()

const std::map< const std::string, Broker > & mqtt::bridge::lib::Bridge::getBrokerMap ( ) const

Definition at line 81 of file Bridge.cpp.

81 {
82 return brokerMap;
83 }

References brokerMap.

◆ getDisabled()

bool mqtt::bridge::lib::Bridge::getDisabled ( ) const

Definition at line 125 of file Bridge.cpp.

125 {
126 return disabled;
127 }

References disabled.

◆ getMqttList()

const std::list< const Mqtt * > & mqtt::bridge::lib::Bridge::getMqttList ( ) const

Definition at line 137 of file Bridge.cpp.

137 {
138 return mqttList;
139 }

References mqttList.

◆ getName()

const std::string & mqtt::bridge::lib::Bridge::getName ( ) const

Definition at line 67 of file Bridge.cpp.

67 {
68 return name;
69 }

References name.

Referenced by mqtt::bridge::SocketContextFactory::create(), and mqtt::mqttbridge::websocket::SubProtocolFactory::create().

Here is the caller graph for this function:

◆ getPrefix()

const std::string & mqtt::bridge::lib::Bridge::getPrefix ( ) const

Definition at line 121 of file Bridge.cpp.

121 {
122 return prefix;
123 }

References prefix.

◆ operator<()

bool mqtt::bridge::lib::Bridge::operator< ( const Bridge & rhs) const

Definition at line 133 of file Bridge.cpp.

133 {
134 return name < rhs.name;
135 }

References name.

◆ publish()

void mqtt::bridge::lib::Bridge::publish ( const mqtt::bridge::lib::Mqtt * originMqtt,
const iot::mqtt::packets::Publish & publish )

Definition at line 107 of file Bridge.cpp.

107 {
108 for (const mqtt::bridge::lib::Mqtt* destinationMqtt : mqttList) {
109 if (originMqtt != destinationMqtt) { // Do not reflect message to origin broker. Avoid message looping
110 destinationMqtt->sendPublish(prefix //
111 + originMqtt->getBroker().getPrefix() //
112 + destinationMqtt->getBroker().getPrefix() //
113 + publish.getTopic(),
114 publish.getMessage(),
115 publish.getQoS(),
116 publish.getRetain());
117 }
118 }
119 }
void publish(const mqtt::bridge::lib::Mqtt *originMqtt, const iot::mqtt::packets::Publish &publish)
Definition Bridge.cpp:107
const std::string & getPrefix() const
Definition Broker.cpp:158
const Broker & getBroker() const
Definition Mqtt.cpp:78

References mqtt::bridge::lib::Mqtt::getBroker(), mqtt::bridge::lib::Broker::getPrefix(), mqttList, and prefix.

Referenced by mqtt::bridge::lib::Mqtt::onPublish().

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

◆ removeMqtt()

void mqtt::bridge::lib::Bridge::removeMqtt ( mqtt::bridge::lib::Mqtt * mqtt)

Definition at line 96 of file Bridge.cpp.

96 {
97 mqttList.remove(mqtt);
98
100 mqtt->getMqttContext()->getSocketConnection()->getInstanceName());
101
102 if (mqttList.size() == 0) {
104 }
105 }
void bridgeStopped(const std::string &bridgeName)
void brokerDisconnected(const std::string &bridgeName, const std::string &instanceName)

References mqtt::bridge::lib::SSEDistributor::bridgeStopped(), mqtt::bridge::lib::SSEDistributor::brokerDisconnected(), mqtt::bridge::lib::SSEDistributor::instance(), mqttList, and name.

Referenced by mqtt::bridge::lib::BridgeStore::mqttDisconnected().

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

Member Data Documentation

◆ brokerMap

std::map<const std::string, Broker> mqtt::bridge::lib::Bridge::brokerMap
private

Definition at line 103 of file Bridge.h.

Referenced by addBroker(), clear(), getBroker(), and getBrokerMap().

◆ disabled

bool mqtt::bridge::lib::Bridge::disabled
private

Definition at line 100 of file Bridge.h.

Referenced by Bridge(), getAllConnected1(), and getDisabled().

◆ enabledBroker

std::size_t mqtt::bridge::lib::Bridge::enabledBroker = 0
private

Definition at line 101 of file Bridge.h.

Referenced by addBroker(), addMqtt(), and getAllConnected1().

◆ mqttList

std::list<const mqtt::bridge::lib::Mqtt*> mqtt::bridge::lib::Bridge::mqttList
private

Definition at line 104 of file Bridge.h.

Referenced by addMqtt(), getAllConnected1(), getMqttList(), publish(), and removeMqtt().

◆ name

std::string mqtt::bridge::lib::Bridge::name
private

Definition at line 98 of file Bridge.h.

Referenced by addMqtt(), Bridge(), getName(), operator<(), and removeMqtt().

◆ prefix

std::string mqtt::bridge::lib::Bridge::prefix
private

Definition at line 99 of file Bridge.h.

Referenced by Bridge(), getPrefix(), and publish().


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