ShimClient.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef shimclient_h
  2. #define shimclient_h
  3. #include "Arduino.h"
  4. #include "Client.h"
  5. #include "IPAddress.h"
  6. #include "Buffer.h"
  7. class ShimClient : public Client {
  8. private:
  9. Buffer* responseBuffer;
  10. Buffer* expectBuffer;
  11. bool _allowConnect;
  12. bool _connected;
  13. bool expectAnything;
  14. bool _error;
  15. uint16_t _received;
  16. IPAddress _expectedIP;
  17. uint16_t _expectedPort;
  18. const char* _expectedHost;
  19. public:
  20. ShimClient();
  21. virtual int connect(IPAddress ip, uint16_t port);
  22. virtual int connect(const char *host, uint16_t port);
  23. virtual size_t write(uint8_t);
  24. virtual size_t write(const uint8_t *buf, size_t size);
  25. virtual int available();
  26. virtual int read();
  27. virtual int read(uint8_t *buf, size_t size);
  28. virtual int peek();
  29. virtual void flush();
  30. virtual void stop();
  31. virtual uint8_t connected();
  32. virtual operator bool();
  33. virtual ShimClient* respond(uint8_t *buf, size_t size);
  34. virtual ShimClient* expect(uint8_t *buf, size_t size);
  35. virtual void expectConnect(IPAddress ip, uint16_t port);
  36. virtual void expectConnect(const char *host, uint16_t port);
  37. virtual uint16_t received();
  38. virtual bool error();
  39. virtual void setAllowConnect(bool b);
  40. virtual void setConnected(bool b);
  41. };
  42. #endif