Matthew Goldsmith
/
cis441projMS2b
CIS441 Proj MS 2b
Diff: MQTTNetwork.h
- Revision:
- 4:ef8866873df5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MQTTNetwork.h Wed Dec 11 21:13:57 2019 +0000 @@ -0,0 +1,44 @@ +#ifndef _MQTTNETWORK_H_ +#define _MQTTNETWORK_H_ + +#include "NetworkInterface.h" + +class MQTTNetwork { +public: + MQTTNetwork(NetworkInterface* aNetwork) : network(aNetwork) { + socket = new TCPSocket(); + } + + ~MQTTNetwork() { + delete socket; + } + + int read(unsigned char* buffer, int len, int timeout) { + socket->set_blocking(false); + socket->set_timeout(timeout); + int ret = socket->recv(buffer, len); + if (NSAPI_ERROR_WOULD_BLOCK == ret) + return 0; + else + return ret; +} + + int write(unsigned char* buffer, int len, int timeout) { + return socket->send(buffer, len); + } + + int connect(const char* hostname, int port) { + socket->open(network); + return socket->connect(hostname, port); + } + + int disconnect() { + return socket->close(); + } + +private: + NetworkInterface* network; + TCPSocket* socket; +}; + +#endif // _MQTTNETWORK_H_