ESP8266_swiss_army_board/src/app/WEBClient.h

31 lines
986 B
C++

#ifndef WEBCLIENT_H
#define WEBCLIENT_H
#include "WEBServer.h"
#include "TCPClient.h"
class WEBClient : public TCPClient
{
template <typename T>
friend class WEBServer;
public:
WEBClient(WiFiClient client, uint8_t id, uint16_t maxResourceBuffer = 256, uint16_t maxBodyBuffer = 256, uint16_t dataBufferSize = 512);
virtual ~WEBClient();
protected:
WEBServer<WEBClient>::WEBClientState _WEBClientState = WEBServer<WEBClient>::WEBClientState::ACCEPTED;
private:
WEBServer<WEBClient>::HttpRequestData _httpRequestData;
WEBServer<WEBClient>::HttpParserStatus _httpParserState = WEBServer<WEBClient>::HttpParserStatus::PARSE_HTTP_VERB;
uint64_t _fileSentBytes = 0;
struct
{
bool _rangeRequest;
size_t _rangeStart;
size_t _rangeEnd;
} _rangeData = {false, 0, 0}; //Used to store the values of the range param for file downloads and media playback
bool _keepAlive = false;
void clearHttpRequestData();
};
#endif //WEBCLIENT_H