Yield function call with timeout works, there was an issue with blockant socket.

Dependencies:   C12832 MQTT

Fork of HelloMQTT by MQTT

Committer:
st519
Date:
Thu May 04 11:36:39 2017 +0000
Revision:
21:eaf9e44036fc
Parent:
20:49c9daf2b0ff
Yield now works with timeout

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:
Jan Jongboom 20:49c9daf2b0ff 8 MQTTNetwork(NetworkInterface* aNetwork) : network(aNetwork) {
Jan Jongboom 20:49c9daf2b0ff 9 socket = new TCPSocket();
Jan Jongboom 20:49c9daf2b0ff 10 }
Jan Jongboom 20:49c9daf2b0ff 11
Jan Jongboom 20:49c9daf2b0ff 12 ~MQTTNetwork() {
Jan Jongboom 20:49c9daf2b0ff 13 delete socket;
Jan Jongboom 20:49c9daf2b0ff 14 }
Jan Jongboom 20:49c9daf2b0ff 15
Jan Jongboom 20:49c9daf2b0ff 16 int read(unsigned char* buffer, int len, int timeout) {
st519 21:eaf9e44036fc 17 socket->set_blocking(true);
st519 21:eaf9e44036fc 18 socket->set_timeout(timeout);
Jan Jongboom 20:49c9daf2b0ff 19 return socket->recv(buffer, len);
Jan Jongboom 20:49c9daf2b0ff 20 }
Jan Jongboom 20:49c9daf2b0ff 21
Jan Jongboom 20:49c9daf2b0ff 22 int write(unsigned char* buffer, int len, int timeout) {
Jan Jongboom 20:49c9daf2b0ff 23 return socket->send(buffer, len);
Jan Jongboom 20:49c9daf2b0ff 24 }
Jan Jongboom 20:49c9daf2b0ff 25
Jan Jongboom 20:49c9daf2b0ff 26 int connect(const char* hostname, int port) {
Jan Jongboom 20:49c9daf2b0ff 27 socket->open(network);
Jan Jongboom 20:49c9daf2b0ff 28 return socket->connect(hostname, port);
Jan Jongboom 20:49c9daf2b0ff 29 }
Jan Jongboom 20:49c9daf2b0ff 30
Jan Jongboom 20:49c9daf2b0ff 31 void disconnect() {
Jan Jongboom 20:49c9daf2b0ff 32
Jan Jongboom 20:49c9daf2b0ff 33 }
Jan Jongboom 20:49c9daf2b0ff 34
Jan Jongboom 20:49c9daf2b0ff 35 private:
Jan Jongboom 20:49c9daf2b0ff 36 NetworkInterface* network;
Jan Jongboom 20:49c9daf2b0ff 37 TCPSocket* socket;
Jan Jongboom 20:49c9daf2b0ff 38 };
Jan Jongboom 20:49c9daf2b0ff 39
Jan Jongboom 20:49c9daf2b0ff 40 #endif // _MQTTNETWORK_H_