SPSP
Simple publish-subscribe protocol. Connects low power IoT clients to MQTT.
All Classes Files Functions Variables Typedefs Enumerations
espidf/spsp/mqtt_adapter.hpp
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include "mqtt_client.h"
13 
14 #include "spsp/mqtt_adapter_if.hpp"
15 #include "spsp/mqtt_types.hpp"
16 
17 namespace SPSP::FarLayers::MQTT
18 {
27  class Adapter : public IAdapter
28  {
29  esp_mqtt_client_handle_t m_mqtt;
30  Config m_conf;
31  AdapterSubDataCb m_subDataCb = nullptr;
32  AdapterConnectedCb m_connectedCb = nullptr;
33 
34  public:
43  Adapter(const Config& conf);
44 
49  ~Adapter();
50 
61  bool publish(const std::string& topic, const std::string& payload);
62 
72  bool subscribe(const std::string& topic);
73 
83  bool unsubscribe(const std::string& topic);
84 
90  void setSubDataCb(AdapterSubDataCb cb);
91 
97  AdapterSubDataCb getSubDataCb() const;
98 
106  void setConnectedCb(AdapterConnectedCb cb);
107 
113  AdapterConnectedCb getConnectedCb() const;
114 
115  protected:
122  inline static const char* stringToCOrNull(const std::string& str)
123  {
124  return str.empty() ? nullptr : str.c_str();
125  }
126  };
127 } // namespace SPSP::FarLayers::MQTT
SPSP::FarLayers::MQTT::Adapter::~Adapter
~Adapter()
Destroys MQTT layer object.
SPSP::FarLayers::MQTT::Adapter::Adapter
Adapter(const Config &conf)
Constructs a new MQTT layer object.
mqtt_adapter_if.hpp
Interface for platform-dependent MQTT adapter.
SPSP::FarLayers::MQTT::IAdapter
Interface for platform-dependent MQTT adapter.
Definition: mqtt_adapter_if.hpp:37
SPSP::FarLayers::MQTT::Adapter::getSubDataCb
AdapterSubDataCb getSubDataCb() const
Gets callback for incoming subscription data.
SPSP::FarLayers::MQTT::Config
MQTT client configuration.
Definition: mqtt_types.hpp:35
mqtt_types.hpp
MQTT types.
SPSP::FarLayers::MQTT::Adapter::stringToCOrNull
static const char * stringToCOrNull(const std::string &str)
Helper to convert std::string to C string or nullptr
Definition: espidf/spsp/mqtt_adapter.hpp:122
SPSP::FarLayers::MQTT::Adapter::setSubDataCb
void setSubDataCb(AdapterSubDataCb cb)
Sets callback for incoming subscription data.
SPSP::FarLayers::MQTT::Adapter::subscribe
bool subscribe(const std::string &topic)
Subscribes to given topic.
SPSP::FarLayers::MQTT::Adapter::publish
bool publish(const std::string &topic, const std::string &payload)
Publishes message coming from node.
SPSP::FarLayers::MQTT::Adapter::setConnectedCb
void setConnectedCb(AdapterConnectedCb cb)
Sets connected callback.
SPSP::FarLayers::MQTT::Adapter
MQTT adapter for ESP platform.
Definition: espidf/spsp/mqtt_adapter.hpp:27
SPSP::FarLayers::MQTT::Adapter::unsubscribe
bool unsubscribe(const std::string &topic)
Unsubscribes from given topic.
SPSP::FarLayers::MQTT::Adapter::getConnectedCb
AdapterConnectedCb getConnectedCb() const
Gets connected callback.