make response stream e sendable later and the buffer size to be specifiable

This commit is contained in:
Me No Dev
2016-01-22 13:36:38 +02:00
parent c4529f0f99
commit 16012daae6
4 changed files with 6 additions and 8 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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(){

View File

@@ -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){