RadioLib
Universal wireless communication library for Arduino
TransportLayer.h
1 #ifndef _RADIOLIB_TRANSPORT_LAYER_H
2 #define _RADIOLIB_TRANSPORT_LAYER_H
3 
4 #include "../../TypeDef.h"
5 
13  public:
14  // constructor
15  // this class is purely virtual and does not require explicit constructor
16 
17  // basic methods
18 
32  virtual int16_t openTransportConnection(const char* host, const char* protocol, uint16_t port, uint16_t tcpKeepAlive = 0) = 0;
33 
39  virtual int16_t closeTransportConnection() = 0;
40 
48  virtual int16_t send(const char* data) = 0;
49 
59  virtual int16_t send(uint8_t* data, size_t len) = 0;
60 
72  virtual size_t receive(uint8_t* data, size_t len, uint32_t timeout = 10000) = 0;
73 
83  virtual size_t getNumBytes(uint32_t timeout = 10000, size_t minBytes = 10) = 0;
84 };
85 
86 #endif
Provides common interface for protocols that run on modules with Internet connectivity, such as HTTP or MQTT. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class.
Definition: TransportLayer.h:12
virtual size_t getNumBytes(uint32_t timeout=10000, size_t minBytes=10)=0
Get number of received bytes.
virtual size_t receive(uint8_t *data, size_t len, uint32_t timeout=10000)=0
Receive data.
virtual int16_t openTransportConnection(const char *host, const char *protocol, uint16_t port, uint16_t tcpKeepAlive=0)=0
Open transport layer connection.
virtual int16_t send(const char *data)=0
Send string-based data.
virtual int16_t closeTransportConnection()=0
Close transport layer connection.