Yalgaar mBed SDK for real-time messaging

Dependents:   YalgaarSDK

Fork of MQTT by Joerg Wende

Revision:
1:c233cee7c15b
Parent:
0:ca855d29545b
--- a/PubSubClient.h	Sun May 26 16:52:01 2013 +0000
+++ b/PubSubClient.h	Fri Mar 10 13:11:49 2017 +0000
@@ -10,13 +10,24 @@
 #ifndef PubSubClient_h
 #define PubSubClient_h
 
-
+#define MQTT_CALLBACK_SIGNATURE void (*callback)(char*,char*, unsigned int)
 
 // MQTT_MAX_PACKET_SIZE : Maximum packet size
-#define MQTT_MAX_PACKET_SIZE 128
+#define MQTT_MAX_PACKET_SIZE 2048
 
 // MQTT_KEEPALIVE : keepAlive interval in Seconds
-#define MQTT_KEEPALIVE 15
+#define MQTT_KEEPALIVE 60
+
+#define MQTT_CONNECTION_TIMEOUT     -4
+#define MQTT_CONNECTION_LOST        -3
+#define MQTT_CONNECT_FAILED         -2
+#define MQTT_DISCONNECTED           -1
+#define MQTT_CONNECTED               0
+#define MQTT_CONNECT_BAD_PROTOCOL    1
+#define MQTT_CONNECT_BAD_CLIENT_ID   2
+#define MQTT_CONNECT_UNAVAILABLE     3
+#define MQTT_CONNECT_BAD_CREDENTIALS 4
+#define MQTT_CONNECT_UNAUTHORIZED    5
 
 #define MQTTPROTOCOLVERSION 3
 #define MQTTCONNECT 1 << 4 // Client request to connect to Server
@@ -39,6 +50,8 @@
 #define MQTTQOS1 (1 << 1)
 #define MQTTQOS2 (2 << 1)
 
+
+
 class PubSubClient {
 private:
    TCPSocketConnection _client;
@@ -47,16 +60,21 @@
    unsigned long lastOutActivity;
    unsigned long lastInActivity;
    bool pingOutstanding;
-   void (*callback)(char*,char*,unsigned int);
+   MQTT_CALLBACK_SIGNATURE;
    int readPacket(int);
    char readByte();
    bool write(short header, char* buf, int length);
    int writeString(char* string, char* buf, int pos);
    char* ip;
    int port;
+   Timer t;
+   int _state;
 public:
    PubSubClient();
-   PubSubClient(char*, int, void(*)(char*,char*,unsigned int));
+   PubSubClient(char*, int);
+   
+   PubSubClient& setCallback(MQTT_CALLBACK_SIGNATURE);
+   
    bool connect(char *);
    bool connect(char *, char *, char *);
    bool connect(char *, char *, short, short, char *);
@@ -70,6 +88,8 @@
    bool unsubscribe(char *);
    bool loop();
    bool connected();
+   int mqtt_state();
+   int millis();
 };