An API for using MQTT over multiple transports
Dependencies: FP MQTTPacket
Dependents: IBMIoTClientEthernetExample_W5500 IBMIoTClientEthernetExample_W5200
Fork of MQTT by
MQTTSocket.h@44:f53a95f9c1d8, 2014-09-29 (annotated)
- 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?
User | Revision | Line number | New 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 |