Response Buffer added to WebKernel

feature/UrlUtils
Kenneth Barbour 2018-03-13 15:53:55 -04:00 committed by Kenneth Barbour
parent d5abc32e3c
commit 91440090b2
2 changed files with 9 additions and 2 deletions

View File

@ -30,7 +30,7 @@ void WebKernel::handleClients()
_stateChange = millis(); _stateChange = millis();
_client.flush(); _client.flush();
case S_DISPATCHING: case S_DISPATCHING:
HttpResponse response; HttpResponse response(_resp_buffer);
_dispatcher.handle(_request, response); _dispatcher.handle(_request, response);
response.headers.set("Connection","close"); response.headers.set("Connection","close");
_client.print(response); _client.print(response);
@ -45,6 +45,7 @@ void WebKernel::handleClients()
if (!keepClient) { if (!keepClient) {
_client.stop(); _client.stop();
_state = S_IDLE; _state = S_IDLE;
_resp_buffer.flush();
} }
if (shouldYield) if (shouldYield)

View File

@ -7,6 +7,8 @@
#define WEBKERNEL_MAX_WAIT 1000 #define WEBKERNEL_MAX_WAIT 1000
#define WEBKERNEL_RESPONSE_SIZE 1024
enum WebKernelState { enum WebKernelState {
S_IDLE, S_IDLE,
S_RECEIVING, S_RECEIVING,
@ -23,7 +25,8 @@ class WebKernel
_router(routes, num), _router(routes, num),
_state(S_IDLE), _state(S_IDLE),
_dispatcher(_router), _dispatcher(_router),
_parser(_request, _client) _parser(_request, _client),
_resp_buffer(_resp_data, WEBKERNEL_RESPONSE_SIZE)
{}; {};
void begin() { _server.begin(); } void begin() { _server.begin(); }
void handleClients(); void handleClients();
@ -42,4 +45,7 @@ class WebKernel
RouteDispatcher _dispatcher; RouteDispatcher _dispatcher;
WebKernelState _state; WebKernelState _state;
unsigned long int _stateChange; unsigned long int _stateChange;
uint8_t _resp_data[WEBKERNEL_RESPONSE_SIZE];
Buffer _resp_buffer;
}; };