From 16012daae60bbdae54737f8e0370555bd0d4e18b Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Fri, 22 Jan 2016 13:36:38 +0200 Subject: [PATCH] make response stream e sendable later and the buffer size to be specifiable --- src/AsyncWebServerResponseImpl.h | 2 +- src/ESPAsyncWebServer.h | 2 +- src/WebResponses.cpp | 4 ++-- src/WebServerClient.cpp | 6 ++---- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/AsyncWebServerResponseImpl.h b/src/AsyncWebServerResponseImpl.h index b587f7f..145243b 100644 --- a/src/AsyncWebServerResponseImpl.h +++ b/src/AsyncWebServerResponseImpl.h @@ -61,7 +61,7 @@ class AsyncResponseStream: public AsyncAbstractResponse, public Print { private: cbuf *_content; public: - AsyncResponseStream(String contentType, size_t len); + AsyncResponseStream(String contentType, size_t len, size_t bufferSize); ~AsyncResponseStream(); bool _sourceValid(){ return (_state < RESPONSE_END); } size_t _fillBuffer(uint8_t *buf, size_t maxLen); diff --git a/src/ESPAsyncWebServer.h b/src/ESPAsyncWebServer.h index d1bfdc9..a8be5a8 100644 --- a/src/ESPAsyncWebServer.h +++ b/src/ESPAsyncWebServer.h @@ -166,7 +166,7 @@ class AsyncWebServerRequest { AsyncWebServerResponse *beginResponse(FS &fs, String path, String contentType=String(), bool download=false); AsyncWebServerResponse *beginResponse(Stream &stream, String contentType, size_t len); AsyncWebServerResponse *beginResponse(String contentType, size_t len, AwsResponseFiller callback); - AsyncResponseStream *getResponseStream(String contentType, size_t len); + AsyncResponseStream *beginResponseStream(String contentType, size_t len, size_t bufferSize=1460); int headers(); // get header count bool hasHeader(String name); diff --git a/src/WebResponses.cpp b/src/WebResponses.cpp index 5a466df..0717787 100644 --- a/src/WebResponses.cpp +++ b/src/WebResponses.cpp @@ -342,11 +342,11 @@ size_t AsyncCallbackResponse::_fillBuffer(uint8_t *data, size_t len){ * Response Stream (You can print/write/printf to it, up to the contentLen bytes) * */ -AsyncResponseStream::AsyncResponseStream(String contentType, size_t len){ +AsyncResponseStream::AsyncResponseStream(String contentType, size_t len, size_t bufferSize){ _code = 200; _contentLength = len; _contentType = contentType; - _content = new cbuf(1460); + _content = new cbuf(bufferSize); } AsyncResponseStream::~AsyncResponseStream(){ diff --git a/src/WebServerClient.cpp b/src/WebServerClient.cpp index f2088d6..5f6a419 100644 --- a/src/WebServerClient.cpp +++ b/src/WebServerClient.cpp @@ -615,10 +615,8 @@ AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(String contentType return new AsyncCallbackResponse(contentType, len, callback); } -AsyncResponseStream * AsyncWebServerRequest::getResponseStream(String contentType, size_t len){ - AsyncResponseStream * r = new AsyncResponseStream(contentType, len); - send(r); - return r; +AsyncResponseStream * AsyncWebServerRequest::beginResponseStream(String contentType, size_t len, size_t bufferSize){ + return new AsyncResponseStream(contentType, len, bufferSize); } void AsyncWebServerRequest::send(int code, String contentType, String content){