An API for using MQTT over multiple transports

Dependencies:   FP MQTTPacket

Dependents:   Cellular_HelloMQTT IoTStarterKit GSwifiInterface_HelloMQTT IBMIoTClientEthernetExample ... more

This library is part of the EclipseTM Paho project; specifically the embedded client.

The goals of this API are:

  1. to be independent of any system library: hence templates parameters for networking, timer and threading classes
  2. not to rely on heap storage, only automatic (I think this is a good thing)
  3. to limit memory use, for instance by defining the size of the buffers and arrays used at object creation time

MQTTSocket.h

Committer:
Jan Jongboom
Date:
2017-09-07
Revision:
49:08571008b958
Parent:
43:21da1f744243
Child:
54:ff9e5c4b52d0

File content as of revision 49:08571008b958:

#if !defined(MQTTSOCKET_H)
#define MQTTSOCKET_H

#include "MQTTmbed.h"
#include "TCPSocketConnection.h"

class MQTTSocket
{
public:
    int connect(char* hostname, int port, int timeout=1000)
    {
        mysock.set_blocking(false, timeout);    // 1 second Timeout
        return mysock.connect(hostname, port);
    }

    int read(unsigned char* buffer, int len, int timeout)
    {
        mysock.set_blocking(false, timeout);
        return mysock.receive((char*)buffer, len);
    }

    int write(unsigned char* buffer, int len, int timeout)
    {
        mysock.set_blocking(false, timeout);
        return mysock.send((char*)buffer, len);
    }

    int disconnect()
    {
        return mysock.close();
    }

    bool is_connected()
    {
        return mysock.is_connected();
    }

private:

    TCPSocketConnection mysock;

};

#endif