123

Revision:
5:361a6987739b
Parent:
4:8620de6d1696
diff -r 8620de6d1696 -r 361a6987739b MQTTClient.h
--- a/MQTTClient.h	Thu Sep 12 20:26:40 2019 +0000
+++ b/MQTTClient.h	Thu Sep 12 22:01:23 2019 +0000
@@ -13,7 +13,7 @@
 
 #define MQTT_MAX_PACKET_SIZE     256    // MQTT_MAX_PACKET_SIZE : Maximum packet size
 #define MQTT_KEEPALIVE            15    // MQTT_KEEPALIVE : keepAlive interval in Seconds
-#define MQTTPROTOCOLVERSION       3
+#define MQTTPROTOCOLVERSION        3
 #define MQTTCONNECT           1 << 4    // Client request to connect to Server
 #define MQTTCONNACK           2 << 4    // Connect Acknowledgment
 #define MQTTPUBLISH           3 << 4    // Publish message
@@ -29,9 +29,9 @@
 #define MQTTPINGRESP         13 << 4    // PING Response
 #define MQTTDISCONNECT       14 << 4    // Client is Disconnecting
 #define MQTTReserved         15 << 4    // Reserved
-#define MQTTQOS0             (0<< 1)
-#define MQTTQOS1             (1<< 1)
-#define MQTTQOS2             (2<< 1)
+#define MQTTQOS0              0 << 1
+#define MQTTQOS1              1 << 1
+#define MQTTQOS2              2 << 1
 
 class MQTTClient
 {
@@ -46,30 +46,33 @@
     uint16_t   _port;
     Stream*    _stream;
 
-    uint16_t   _readPacket(uint8_t* );
+    uint16_t   _readPacket(uint8_t*);
     uint8_t    _readByte();
     bool       _write(uint8_t header, uint8_t* buf, uint16_t length);
     uint16_t   _writeString(const char* string, uint8_t* buf, uint16_t length);
 
-    Callback<void (char *, uint8_t *, uint16_t)>    _onMessage;
+    Callback<void (char*, uint8_t*, uint16_t)> _onMessage;
 public:
     MQTTClient();
-    MQTTClient(IpAddress& , uint16_t, Callback<void (char*, uint8_t*, uint16_t)> );
-    MQTTClient(IpAddress& , uint16_t, Callback<void (char*, uint8_t*, uint16_t)> , Stream& );
-    MQTTClient(const char* , uint16_t, Callback<void (char*, uint8_t*, uint16_t)> );
-    MQTTClient(const char* , uint16_t, Callback<void (char*, uint8_t*, uint16_t)> , Stream& );
-    bool    connect(const char* );
-    bool    connect(const char* , const char* , const char* );
-    bool    connect(const char* , const char* , uint8_t, uint8_t, const char* );
-    bool    connect(const char* , const char* , const char* , const char* , uint8_t, uint8_t, const char* );
+    MQTTClient(IpAddress& ip, uint16_t port);
+    MQTTClient(IpAddress& ip, uint16_t port , Stream& stream);
+    MQTTClient(const char* domain, uint16_t port);
+    MQTTClient(const char* domain, uint16_t port, Stream& stream);
+    bool    connect(const char*);
+    bool    connect(const char* , const char* , const char*);
+    bool    connect(const char* , const char* , uint8_t, uint8_t, const char*);
+    bool    connect(const char* , const char* , const char* , const char* , uint8_t, uint8_t, const char*);
     void    disconnect();
-    bool    publish(const char* , const char* );
+    bool    publish(const char* , const char*);
     bool    publish(const char* , uint8_t* , uint16_t);
     bool    publish(const char* , uint8_t* , uint16_t, bool);
-    bool    subscribe(const char* );
+    bool    subscribe(const char*);
     bool    subscribe(const char* , uint8_t qos);
-    bool    unsubscribe(const char* );
-    bool    process();
+    bool    unsubscribe(const char*);
+    bool    poll();
     bool    connected();
+    void    attach(Callback<void (char*, uint8_t*, uint16_t)>);
+    template<typename T, typename M>
+    void    attach(T *obj, M method ) { attach(callback(obj, method)); }
 };
 #endif