123
Diff: MQTTClient.h
- 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