An API for using MQTT over multiple transports

Dependencies:   FP MQTTPacket

Dependents:   IBMIoTClientEthernetExample_W5500 IBMIoTClientEthernetExample_W5200

Fork of MQTT by MQTT

Committer:
kaizen
Date:
Mon Sep 29 04:56:42 2014 +0000
Revision:
44:f53a95f9c1d8
Parent:
36:2f1ada427e56
Modified for using HW_Stack

Who changed what in which revision?

UserRevisionLine numberNew contents of line
icraggs 31:a51dd239b78e 1 #if !defined(MQTTSOCKET_H)
icraggs 31:a51dd239b78e 2 #define MQTTSOCKET_H
icraggs 31:a51dd239b78e 3
icraggs 31:a51dd239b78e 4 #include "MQTT_mbed.h"
icraggs 31:a51dd239b78e 5 #include "TCPSocketConnection.h"
icraggs 31:a51dd239b78e 6
icraggs 31:a51dd239b78e 7 class MQTTSocket
icraggs 31:a51dd239b78e 8 {
kaizen 44:f53a95f9c1d8 9 public:
kaizen 44:f53a95f9c1d8 10 ~MQTTSocket()
kaizen 44:f53a95f9c1d8 11 {
kaizen 44:f53a95f9c1d8 12 if(mysock)
kaizen 44:f53a95f9c1d8 13 delete mysock;
kaizen 44:f53a95f9c1d8 14 }
kaizen 44:f53a95f9c1d8 15
icraggs 31:a51dd239b78e 16 int connect(char* hostname, int port, int timeout=1000)
kaizen 44:f53a95f9c1d8 17 {
kaizen 44:f53a95f9c1d8 18 mysock->set_blocking(false, timeout); // 1 second Timeout
kaizen 44:f53a95f9c1d8 19 return mysock->connect(hostname, port);
kaizen 44:f53a95f9c1d8 20 }
icraggs 31:a51dd239b78e 21
icraggs 36:2f1ada427e56 22 int read(unsigned char* buffer, int len, int timeout)
kaizen 44:f53a95f9c1d8 23 {
kaizen 44:f53a95f9c1d8 24 mysock->set_blocking(false, timeout);
kaizen 44:f53a95f9c1d8 25 return mysock->receive((char*)buffer, len);
kaizen 44:f53a95f9c1d8 26 }
kaizen 44:f53a95f9c1d8 27
icraggs 36:2f1ada427e56 28 int write(unsigned char* buffer, int len, int timeout)
kaizen 44:f53a95f9c1d8 29 {
kaizen 44:f53a95f9c1d8 30 mysock->set_blocking(false, timeout);
kaizen 44:f53a95f9c1d8 31 return mysock->send((char*)buffer, len);
kaizen 44:f53a95f9c1d8 32 }
kaizen 44:f53a95f9c1d8 33
icraggs 31:a51dd239b78e 34 int disconnect()
kaizen 44:f53a95f9c1d8 35 {
kaizen 44:f53a95f9c1d8 36 return mysock->close();
kaizen 44:f53a95f9c1d8 37 }
kaizen 44:f53a95f9c1d8 38
kaizen 44:f53a95f9c1d8 39 protected:
kaizen 44:f53a95f9c1d8 40 void createSocket() { mysock = new TCPSocketConnection(); }
kaizen 44:f53a95f9c1d8 41
icraggs 31:a51dd239b78e 42 private:
icraggs 31:a51dd239b78e 43
kaizen 44:f53a95f9c1d8 44 TCPSocketConnection *mysock;
kaizen 44:f53a95f9c1d8 45
icraggs 31:a51dd239b78e 46 };
icraggs 31:a51dd239b78e 47
icraggs 31:a51dd239b78e 48
icraggs 31:a51dd239b78e 49
kaizen 44:f53a95f9c1d8 50 #endif