SNode.C
|
#include <Broker.h>
Public Member Functions | |
Broker (uint8_t maxQoS, const std::string &sessionStoreFileName) | |
~Broker () | |
void | appear (const std::string &clientId, const std::string &topic, uint8_t qoS) |
void | unsubscribe (const std::string &clientId) |
void | publish (const std::string &originClientId, const std::string &topic, const std::string &message, uint8_t qoS, bool retain) |
uint8_t | subscribe (const std::string &clientId, const std::string &topic, uint8_t qoS) |
void | unsubscribe (const std::string &clientId, const std::string &topic) |
std::list< std::string > | getSubscriptions (const std::string &clientId) const |
std::map< std::string, std::list< std::pair< std::string, uint8_t > > > | getSubscriptionTree () const |
iot::mqtt::server::broker::RetainTree & | getRetainedTree () |
bool | hasSession (const std::string &clientId) |
bool | hasActiveSession (const std::string &clientId) |
bool | hasRetainedSession (const std::string &clientId) |
bool | isActiveSession (const std::string &clientId, const Mqtt *mqtt) |
Session * | newSession (const std::string &clientId, iot::mqtt::server::Mqtt *mqtt) |
Session * | renewSession (const std::string &clientId, iot::mqtt::server::Mqtt *mqtt) |
void | restartSession (const std::string &clientId) |
void | retainSession (const std::string &clientId) |
void | deleteSession (const std::string &clientId) |
void | sendPublish (const std::string &clientId, Message &message, uint8_t qoS, bool retain) |
Static Public Member Functions | |
static std::shared_ptr< Broker > | instance (uint8_t maxQoS, const std::string &sessionStoreFileName) |
Private Attributes | |
std::string | sessionStoreFileName |
uint8_t | maxQoS |
iot::mqtt::server::broker::SubscribtionTree | subscribtionTree |
iot::mqtt::server::broker::RetainTree | retainTree |
std::map< std::string, iot::mqtt::server::broker::Session > | sessionStore |
iot::mqtt::server::broker::Broker::Broker | ( | uint8_t | maxQoS, |
const std::string & | sessionStoreFileName | ||
) |
Definition at line 60 of file Broker.cpp.
References iot::mqtt::server::broker::RetainTree::clear(), iot::mqtt::server::broker::SubscribtionTree::clear(), iot::mqtt::server::broker::RetainTree::fromJson(), iot::mqtt::server::broker::Session::fromJson(), iot::mqtt::server::broker::SubscribtionTree::fromJson(), maxQoS, retainTree, iot::mqtt::server::broker::RetainTree::RetainTree(), sessionStore, sessionStoreFileName, subscribtionTree, and iot::mqtt::server::broker::SubscribtionTree::SubscribtionTree().
iot::mqtt::server::broker::Broker::~Broker | ( | ) |
Definition at line 102 of file Broker.cpp.
References retainTree, sessionStore, sessionStoreFileName, subscribtionTree, iot::mqtt::server::broker::RetainTree::toJson(), iot::mqtt::server::broker::SubscribtionTree::toJson(), and iot::mqtt::server::broker::Session::toJson().
void iot::mqtt::server::broker::Broker::appear | ( | const std::string & | clientId, |
const std::string & | topic, | ||
uint8_t | qoS | ||
) |
Definition at line 146 of file Broker.cpp.
References iot::mqtt::server::broker::RetainTree::appear(), and retainTree.
Referenced by iot::mqtt::server::broker::SubscribtionTree::TopicLevel::appear().
void iot::mqtt::server::broker::Broker::deleteSession | ( | const std::string & | clientId | ) |
Definition at line 232 of file Broker.cpp.
References sessionStore, subscribtionTree, and iot::mqtt::server::broker::SubscribtionTree::unsubscribe().
Referenced by iot::mqtt::server::Mqtt::releaseSession().
RetainTree & iot::mqtt::server::broker::Broker::getRetainedTree | ( | ) |
Definition at line 190 of file Broker.cpp.
References retainTree.
std::list< std::string > iot::mqtt::server::broker::Broker::getSubscriptions | ( | const std::string & | clientId | ) | const |
Definition at line 182 of file Broker.cpp.
References iot::mqtt::server::broker::SubscribtionTree::getSubscriptions(), and subscribtionTree.
Referenced by iot::mqtt::server::Mqtt::getSubscriptions().
std::map< std::string, std::list< std::pair< std::string, uint8_t > > > iot::mqtt::server::broker::Broker::getSubscriptionTree | ( | ) | const |
Definition at line 186 of file Broker.cpp.
References iot::mqtt::server::broker::SubscribtionTree::getSubscriptionTree(), and subscribtionTree.
bool iot::mqtt::server::broker::Broker::hasActiveSession | ( | const std::string & | clientId | ) |
Definition at line 198 of file Broker.cpp.
References hasSession(), iot::mqtt::server::broker::Session::isActive(), and sessionStore.
Referenced by iot::mqtt::server::Mqtt::initSession().
bool iot::mqtt::server::broker::Broker::hasRetainedSession | ( | const std::string & | clientId | ) |
Definition at line 202 of file Broker.cpp.
References hasSession(), iot::mqtt::server::broker::Session::isActive(), and sessionStore.
Referenced by iot::mqtt::server::Mqtt::initSession().
bool iot::mqtt::server::broker::Broker::hasSession | ( | const std::string & | clientId | ) |
Definition at line 194 of file Broker.cpp.
References sessionStore.
Referenced by hasActiveSession(), hasRetainedSession(), and isActiveSession().
|
static |
Definition at line 140 of file Broker.cpp.
Referenced by iot::mqtt::server::SharedSocketContextFactory::create().
bool iot::mqtt::server::broker::Broker::isActiveSession | ( | const std::string & | clientId, |
const Mqtt * | mqtt | ||
) |
Definition at line 206 of file Broker.cpp.
References hasSession(), iot::mqtt::server::broker::Session::isOwnedBy(), and sessionStore.
Referenced by iot::mqtt::server::Mqtt::releaseSession().
Session * iot::mqtt::server::broker::Broker::newSession | ( | const std::string & | clientId, |
iot::mqtt::server::Mqtt * | mqtt | ||
) |
Definition at line 210 of file Broker.cpp.
References iot::mqtt::server::broker::Session::Session(), and sessionStore.
Referenced by iot::mqtt::server::Mqtt::initSession().
void iot::mqtt::server::broker::Broker::publish | ( | const std::string & | originClientId, |
const std::string & | topic, | ||
const std::string & | message, | ||
uint8_t | qoS, | ||
bool | retain | ||
) |
Definition at line 155 of file Broker.cpp.
References iot::mqtt::server::broker::Message::Message(), iot::mqtt::server::broker::SubscribtionTree::publish(), iot::mqtt::server::broker::RetainTree::retain(), retainTree, and subscribtionTree.
Referenced by iot::mqtt::server::Mqtt::_onPublish(), and iot::mqtt::server::Mqtt::~Mqtt().
Session * iot::mqtt::server::broker::Broker::renewSession | ( | const std::string & | clientId, |
iot::mqtt::server::Mqtt * | mqtt | ||
) |
Definition at line 216 of file Broker.cpp.
References iot::mqtt::server::broker::Session::renew(), and sessionStore.
Referenced by iot::mqtt::server::Mqtt::initSession().
void iot::mqtt::server::broker::Broker::restartSession | ( | const std::string & | clientId | ) |
Definition at line 220 of file Broker.cpp.
References iot::mqtt::server::broker::SubscribtionTree::appear(), iot::mqtt::server::broker::Session::publishQueued(), sessionStore, and subscribtionTree.
Referenced by iot::mqtt::server::Mqtt::initSession().
void iot::mqtt::server::broker::Broker::retainSession | ( | const std::string & | clientId | ) |
Definition at line 228 of file Broker.cpp.
References iot::mqtt::server::broker::Session::retain(), and sessionStore.
Referenced by iot::mqtt::server::Mqtt::releaseSession().
void iot::mqtt::server::broker::Broker::sendPublish | ( | const std::string & | clientId, |
Message & | message, | ||
uint8_t | qoS, | ||
bool | retain | ||
) |
Definition at line 237 of file Broker.cpp.
References iot::mqtt::server::broker::Session::sendPublish(), and sessionStore.
Referenced by iot::mqtt::server::broker::RetainTree::TopicLevel::appear(), iot::mqtt::server::broker::RetainTree::TopicLevel::appear(), and iot::mqtt::server::broker::SubscribtionTree::TopicLevel::publish().
uint8_t iot::mqtt::server::broker::Broker::subscribe | ( | const std::string & | clientId, |
const std::string & | topic, | ||
uint8_t | qoS | ||
) |
Definition at line 163 of file Broker.cpp.
References iot::mqtt::server::broker::RetainTree::appear(), maxQoS, retainTree, iot::mqtt::server::broker::SubscribtionTree::subscribe(), and subscribtionTree.
Referenced by iot::mqtt::server::Mqtt::_onSubscribe(), and iot::mqtt::server::Mqtt::subscribe().
void iot::mqtt::server::broker::Broker::unsubscribe | ( | const std::string & | clientId | ) |
Definition at line 150 of file Broker.cpp.
References subscribtionTree, and iot::mqtt::server::broker::SubscribtionTree::unsubscribe().
Referenced by iot::mqtt::server::Mqtt::initSession().
void iot::mqtt::server::broker::Broker::unsubscribe | ( | const std::string & | clientId, |
const std::string & | topic | ||
) |
Definition at line 178 of file Broker.cpp.
References subscribtionTree, and iot::mqtt::server::broker::SubscribtionTree::unsubscribe().
Referenced by iot::mqtt::server::Mqtt::_onUnsubscribe(), and iot::mqtt::server::Mqtt::unsubscribe().
|
private |
Definition at line 109 of file Broker.h.
Referenced by Broker(), and subscribe().
|
private |
Definition at line 112 of file Broker.h.
Referenced by appear(), Broker(), getRetainedTree(), publish(), subscribe(), and ~Broker().
|
private |
Definition at line 114 of file Broker.h.
Referenced by Broker(), deleteSession(), hasActiveSession(), hasRetainedSession(), hasSession(), isActiveSession(), newSession(), renewSession(), restartSession(), retainSession(), sendPublish(), and ~Broker().
|
private |
|
private |
Definition at line 111 of file Broker.h.
Referenced by Broker(), deleteSession(), getSubscriptions(), getSubscriptionTree(), publish(), restartSession(), subscribe(), unsubscribe(), unsubscribe(), and ~Broker().