MQTT client to test the ENC28J60-EMAC on NUCLEO-F446RE.

Dependencies:   ENC28J60-EMAC

MQTTNetwork.h

Committer:
hudakz
Date:
2021-03-29
Revision:
5:d9570dbf2f82
Parent:
0:238f0d0c0ba3

File content as of revision 5:d9570dbf2f82:

#ifndef _MQTTNETWORK_H_
#define _MQTTNETWORK_H_

#include "EthernetInterface.h"
#include "TCPSocket.h"

class   MQTTNetwork
{
public:
    MQTTNetwork(EthernetInterface* aNetwork) :
    network(aNetwork),
    socket(new TCPSocket)
    {}

    ~   MQTTNetwork()                                       { delete socket; }
    int read(unsigned char* buffer, int len, int timeout)   { return socket->recv(buffer, len); }
    int write(unsigned char* buffer, int len, int timeout)  { return socket->send(buffer, len); }
    int connect(const char* hostname, uint16_t port)
    {
        SocketAddress   addr;

        socket->open(network);
        addr.set_ip_address(hostname);
        addr.set_port(port);
        return socket->connect(addr);
    }
    int disconnect()    { return socket->close(); }
private:
    EthernetInterface*  network;
    TCPSocket*          socket;
};
#endif // _MQTTNETWORK_H_