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: private:
cbuf *_content; cbuf *_content;
public: public:
AsyncResponseStream(String contentType, size_t len); AsyncResponseStream(String contentType, size_t len, size_t bufferSize);
~AsyncResponseStream(); ~AsyncResponseStream();
bool _sourceValid(){ return (_state < RESPONSE_END); } bool _sourceValid(){ return (_state < RESPONSE_END); }
size_t _fillBuffer(uint8_t *buf, size_t maxLen); 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(FS &fs, String path, String contentType=String(), bool download=false);
AsyncWebServerResponse *beginResponse(Stream &stream, String contentType, size_t len); AsyncWebServerResponse *beginResponse(Stream &stream, String contentType, size_t len);
AsyncWebServerResponse *beginResponse(String contentType, size_t len, AwsResponseFiller callback); 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 int headers(); // get header count
bool hasHeader(String name); 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) * 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; _code = 200;
_contentLength = len; _contentLength = len;
_contentType = contentType; _contentType = contentType;
_content = new cbuf(1460); _content = new cbuf(bufferSize);
} }
AsyncResponseStream::~AsyncResponseStream(){ AsyncResponseStream::~AsyncResponseStream(){

View File

@@ -615,10 +615,8 @@ AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(String contentType
return new AsyncCallbackResponse(contentType, len, callback); return new AsyncCallbackResponse(contentType, len, callback);
} }
AsyncResponseStream * AsyncWebServerRequest::getResponseStream(String contentType, size_t len){ AsyncResponseStream * AsyncWebServerRequest::beginResponseStream(String contentType, size_t len, size_t bufferSize){
AsyncResponseStream * r = new AsyncResponseStream(contentType, len); return new AsyncResponseStream(contentType, len, bufferSize);
send(r);
return r;
} }
void AsyncWebServerRequest::send(int code, String contentType, String content){ void AsyncWebServerRequest::send(int code, String contentType, String content){