sMQTTBroker
sMQTTBroker.h
1 
4 #ifndef SMQTTBROKER_FILE
5 #define SMQTTBROKER_FILE
6 
7 #include"sMQTTplatform.h"
8 #include"sMQTTClient.h"
9 #include"sMQTTTopic.h"
10 #include"sMQTTEvent.h"
11 
13 {
14 public:
16  bool init(unsigned short port, bool checkWifiConnection=false);
18  void update();
20  void publish(const std::string &topic, const std::string &payload,unsigned char qos=0,bool retain=false);
22  void restart();
24  virtual bool onEvent(sMQTTEvent *event) { return true; }
25 
26  SMQTT_DEPRECATED("onConnect is deprecated, use onEvent") virtual bool onConnect(sMQTTClient *client, const std::string &username, const std::string &password) { return true; };
27  SMQTT_DEPRECATED("onRemove is deprecated, use onEvent") virtual void onRemove(sMQTTClient*) {};
28  SMQTT_DEPRECATED("onPublish is deprecated, use onEvent") virtual void onPublish(sMQTTClient *client, const std::string &topic, const std::string &payload) {};
29 private:
30  // inner function
31  void publish(sMQTTClient *client, sMQTTTopic *topic, sMQTTMessage *msg);
32 
33  bool subscribe(sMQTTClient *client, const char *topic);
34  void unsubscribe(sMQTTClient *client, const char *topic);
35 
36  bool isTopicValidName(const char *filter);
37  void updateRetainedTopic(sMQTTTopic *topic);
38 
39  bool isClientConnected(sMQTTClient *client);
40 private:
41  void findRetainTopic(sMQTTTopic *topic, sMQTTClient *client);
42 
43  TCPServer *_server;
44  sMQTTClientList clients;
45  sMQTTTopicList subscribes, retains;
46  bool isCheckWifiConnection;
47 };
48 #endif
sMQTTBroker
Definition: sMQTTBroker.h:13
sMQTTEvent
Definition: sMQTTEvent.h:17
sMQTTBroker::update
void update()
call in loop function
Definition: sMQTTBroker.cpp:12
sMQTTBroker::publish
void publish(const std::string &topic, const std::string &payload, unsigned char qos=0, bool retain=false)
publish message
Definition: sMQTTBroker.cpp:239
sMQTTBroker::init
bool init(unsigned short port, bool checkWifiConnection=false)
setup broker
Definition: sMQTTBroker.cpp:3
sMQTTBroker::restart
void restart()
restart WIFI server
Definition: sMQTTBroker.cpp:275
sMQTTBroker::onEvent
virtual bool onEvent(sMQTTEvent *event)
receive event from broker
Definition: sMQTTBroker.h:24
sMQTTMessage
Definition: sMQTTMessage.h:34
sMQTTTopic
Definition: sMQTTTopic.h:11
sMQTTClient
Definition: sMQTTClient.h:22