Allow callback when request disconnects (#284)

* Allow callback when request disconnects

* Use typedef std::function<void(void)> ArDisconnectHandler
This commit is contained in:
Luc 2017-11-16 18:45:33 +01:00 committed by Me No Dev
parent 8604f67a5f
commit 63b5303880
2 changed files with 10 additions and 0 deletions

View File

@ -62,6 +62,7 @@ typedef enum {
HTTP_ANY = 0b01111111,
} WebRequestMethod;
typedef uint8_t WebRequestMethodComposite;
typedef std::function<void(void)> ArDisconnectHandler;
/*
* PARAMETER :: Chainable object to hold GET/POST and FILE parameters
@ -128,6 +129,7 @@ class AsyncWebServerRequest {
AsyncWebHandler* _handler;
AsyncWebServerResponse* _response;
StringArray _interestingHeaders;
ArDisconnectHandler _onDisconnectfn;
String _temp;
uint8_t _parseState;
@ -202,6 +204,7 @@ class AsyncWebServerRequest {
const char * requestedConnTypeToString() const;
RequestedConnectionType requestedConnType() const { return _reqconntype; }
bool isExpectedRequestedConnType(RequestedConnectionType erct1, RequestedConnectionType erct2 = RCT_NOT_USED, RequestedConnectionType erct3 = RCT_NOT_USED);
void onDisconnect (ArDisconnectHandler fn);
//hash is the string representation of:
// base64(user:pass) for basic or

View File

@ -214,8 +214,15 @@ void AsyncWebServerRequest::_onTimeout(uint32_t time){
_client->close();
}
void AsyncWebServerRequest::onDisconnect (ArDisconnectHandler fn){
_onDisconnectfn=fn;
}
void AsyncWebServerRequest::_onDisconnect(){
//os_printf("d\n");
if(_onDisconnectfn) {
_onDisconnectfn();
}
_server->_handleDisconnect(this);
}