Asavie IoT Connect MQTT cloud service connectors

Dependencies:   MQTTPacket FP

Dependents:   AsavieIoTConnectCloudConnector

Committer:
Markl
Date:
Fri May 17 16:32:08 2019 +0000
Revision:
61:150b06e72bf8
REV1.0

Who changed what in which revision?

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