52 lines
1.2 KiB
C++
52 lines
1.2 KiB
C++
#ifndef shimclient_h
|
|
#define shimclient_h
|
|
|
|
#include "Arduino.h"
|
|
#include "Client.h"
|
|
#include "IPAddress.h"
|
|
#include "Buffer.h"
|
|
|
|
|
|
class ShimClient : public Client {
|
|
private:
|
|
Buffer* responseBuffer;
|
|
Buffer* expectBuffer;
|
|
bool _allowConnect;
|
|
bool _connected;
|
|
bool expectAnything;
|
|
bool _error;
|
|
uint16_t _received;
|
|
IPAddress _expectedIP;
|
|
uint16_t _expectedPort;
|
|
const char* _expectedHost;
|
|
|
|
public:
|
|
ShimClient();
|
|
virtual int connect(IPAddress ip, uint16_t port);
|
|
virtual int connect(const char *host, uint16_t port);
|
|
virtual size_t write(uint8_t);
|
|
virtual size_t write(const uint8_t *buf, size_t size);
|
|
virtual int available();
|
|
virtual int read();
|
|
virtual int read(uint8_t *buf, size_t size);
|
|
virtual int peek();
|
|
virtual void flush();
|
|
virtual void stop();
|
|
virtual uint8_t connected();
|
|
virtual operator bool();
|
|
|
|
virtual ShimClient* respond(uint8_t *buf, size_t size);
|
|
virtual ShimClient* expect(uint8_t *buf, size_t size);
|
|
|
|
virtual void expectConnect(IPAddress ip, uint16_t port);
|
|
virtual void expectConnect(const char *host, uint16_t port);
|
|
|
|
virtual uint16_t received();
|
|
virtual bool error();
|
|
|
|
virtual void setAllowConnect(bool b);
|
|
virtual void setConnected(bool b);
|
|
};
|
|
|
|
#endif
|