Vergil Cola / Mbed OS HelloMQTT Featured

Dependencies:   FP MQTTPacket

Fork of HelloMQTT by MQTT

Committer:
vpcola
Date:
Mon Mar 27 03:53:18 2017 +0000
Revision:
25:326f00faa092
Parent:
22:826657a00c44
Added SSL/TLS code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jan Jongboom 20:49c9daf2b0ff 1 #ifndef _MQTTNETWORK_H_
Jan Jongboom 20:49c9daf2b0ff 2 #define _MQTTNETWORK_H_
Jan Jongboom 20:49c9daf2b0ff 3
Jan Jongboom 20:49c9daf2b0ff 4 #include "NetworkInterface.h"
Jan Jongboom 20:49c9daf2b0ff 5
Jan Jongboom 20:49c9daf2b0ff 6 class MQTTNetwork {
Jan Jongboom 20:49c9daf2b0ff 7 public:
vpcola 21:a7506c90aa84 8 MQTTNetwork(NetworkInterface* aNetwork) : network(aNetwork)
vpcola 21:a7506c90aa84 9 {
Jan Jongboom 20:49c9daf2b0ff 10 socket = new TCPSocket();
vpcola 22:826657a00c44 11 //socket->set_blocking(false);
Jan Jongboom 20:49c9daf2b0ff 12 }
Jan Jongboom 20:49c9daf2b0ff 13
Jan Jongboom 20:49c9daf2b0ff 14 ~MQTTNetwork() {
Jan Jongboom 20:49c9daf2b0ff 15 delete socket;
Jan Jongboom 20:49c9daf2b0ff 16 }
Jan Jongboom 20:49c9daf2b0ff 17
Jan Jongboom 20:49c9daf2b0ff 18 int read(unsigned char* buffer, int len, int timeout) {
vpcola 22:826657a00c44 19 socket->set_blocking(false);
vpcola 21:a7506c90aa84 20 socket->set_timeout(timeout);
Jan Jongboom 20:49c9daf2b0ff 21 return socket->recv(buffer, len);
Jan Jongboom 20:49c9daf2b0ff 22 }
Jan Jongboom 20:49c9daf2b0ff 23
Jan Jongboom 20:49c9daf2b0ff 24 int write(unsigned char* buffer, int len, int timeout) {
vpcola 22:826657a00c44 25 socket->set_blocking(true);
Jan Jongboom 20:49c9daf2b0ff 26 return socket->send(buffer, len);
Jan Jongboom 20:49c9daf2b0ff 27 }
Jan Jongboom 20:49c9daf2b0ff 28
Jan Jongboom 20:49c9daf2b0ff 29 int connect(const char* hostname, int port) {
Jan Jongboom 20:49c9daf2b0ff 30 socket->open(network);
Jan Jongboom 20:49c9daf2b0ff 31 return socket->connect(hostname, port);
Jan Jongboom 20:49c9daf2b0ff 32 }
Jan Jongboom 20:49c9daf2b0ff 33
Jan Jongboom 20:49c9daf2b0ff 34 void disconnect() {
Jan Jongboom 20:49c9daf2b0ff 35
Jan Jongboom 20:49c9daf2b0ff 36 }
Jan Jongboom 20:49c9daf2b0ff 37
Jan Jongboom 20:49c9daf2b0ff 38 private:
Jan Jongboom 20:49c9daf2b0ff 39 NetworkInterface* network;
Jan Jongboom 20:49c9daf2b0ff 40 TCPSocket* socket;
Jan Jongboom 20:49c9daf2b0ff 41 };
Jan Jongboom 20:49c9daf2b0ff 42
Jan Jongboom 20:49c9daf2b0ff 43 #endif // _MQTTNETWORK_H_