/*
Client.h - Base class that provides Client
Copyright (c) 2011 Adrian McEwen. All right reserved.
*/
#pragma once
#include "Arduino.h"
#include "Client.h"
#include <memory>
class WiFiClientSocketHandle;
class WiFiClientRxBuffer;
class ESPLwIPClient : public Client
{
public:
virtual int connect(IPAddress ip, uint16_t port, int32_t timeout) = 0;
virtual int connect(const char *host, uint16_t port, int32_t timeout) = 0;
virtual int setTimeout(uint32_t seconds) = 0;
};
class WiFiClient : public ESPLwIPClient
{
protected:
std::shared_ptr<WiFiClientSocketHandle> clientSocketHandle;
std::shared_ptr<WiFiClientRxBuffer> _rxBuffer;
bool _connected;
int _timeout;
public:
WiFiClient *next;
WiFiClient();
WiFiClient(int fd);
~WiFiClient();
int connect(IPAddress ip, uint16_t port);
int connect(IPAddress ip, uint16_t port, int32_t timeout);
int connect(const char *host, uint16_t port);
int connect(const char *host, uint16_t port, int32_t timeout);
size_t write(uint8_t data);
size_t write(const uint8_t *buf, size_t size);
size_t write_P(PGM_P buf, size_t size);
size_t write(Stream &stream);
int available();
int read();
int read(uint8_t *buf, size_t size);
int peek();
void flush();
void stop();
uint8_t connected();
operator bool() {return connected();}
WiFiClient&operator=(const WiFiClient &other);
bool operator==(bool value) {return bool() == value;}
bool operator==(const WiFiClient& r) {return operator==(r);}
int fd() const;
int setSocketOption(int option, char* value, size_t len);
int setSocketOption(int level, int option, const void* value, size_t len);
int setOption(int option, int *value);
int getOption(int option, int *value);
int setTimeout(uint32_t seconds);
int setNoDelay(bool nodelay);
bool getNoDelay();
IPAddress remoteIP() const {return remoteIP(fd());}
IPAddress remoteIP(int fd) const;
uint16_t remotePort() const {return remotePort(fd());}
uint16_t remotePort(int fd) const;
IPAddress localIP() const {return localIP(fd());}
IPAddress localIP(int fd) const;
uint16_t localPort() const {return localPort(fd());}
uint16_t localPort(int fd) const;
//friend class WiFiServer;
using Print::write;
};
Vorgefundene Kodierung: ASCII (7 bit) | 2
|