refactor: network management code moved to MainTask (memory optimization); removed stopping DHCP server and client on reset wifi

This commit is contained in:
Yurii
2024-01-17 16:08:53 +03:00
parent 8731311c62
commit 133015d7b9
15 changed files with 661 additions and 608 deletions

View File

@@ -3,9 +3,9 @@
class DynamicPage : public RequestHandler {
public:
typedef std::function<bool(HTTPMethod, const String&)> canHandleFunction;
typedef std::function<bool()> beforeSendFunction;
typedef std::function<String(const char*)> templateFunction;
typedef std::function<bool(HTTPMethod, const String&)> CanHandleCallback;
typedef std::function<bool()> BeforeSendCallback;
typedef std::function<String(const char*)> TemplateCallback;
DynamicPage(const char* uri, FS* fs, const char* path, const char* cacheHeader = nullptr) {
this->uri = uri;
@@ -14,20 +14,20 @@ public:
this->cacheHeader = cacheHeader;
}
DynamicPage* setCanHandleFunction(canHandleFunction val = nullptr) {
this->canHandleFn = val;
DynamicPage* setCanHandleCallback(CanHandleCallback callback = nullptr) {
this->canHandleCallback = callback;
return this;
}
DynamicPage* setBeforeSendFunction(beforeSendFunction val = nullptr) {
this->beforeSendFn = val;
DynamicPage* setBeforeSendCallback(BeforeSendCallback callback = nullptr) {
this->beforeSendCallback = callback;
return this;
}
DynamicPage* setTemplateFunction(templateFunction val = nullptr) {
this->templateFn = val;
DynamicPage* setTemplateCallback(TemplateCallback callback = nullptr) {
this->templateCallback = callback;
return this;
}
@@ -37,7 +37,7 @@ public:
#else
bool canHandle(HTTPMethod method, const String& uri) override {
#endif
return uri.equals(this->uri) && (!this->canHandleFn || this->canHandleFn(method, uri));
return uri.equals(this->uri) && (!this->canHandleCallback || this->canHandleCallback(method, uri));
}
#if defined(ARDUINO_ARCH_ESP32)
@@ -49,7 +49,7 @@ public:
return false;
}
if (this->beforeSendFn && !this->beforeSendFn()) {
if (this->beforeSendCallback && !this->beforeSendCallback()) {
return true;
}
@@ -98,7 +98,7 @@ public:
argName[fullSizeArgName] = '\0';
// send arg value
String argValue = this->templateFn((const char*) argName);
String argValue = this->templateCallback((const char*) argName);
if (argValue.length()) {
server.sendContent(argValue.c_str());
@@ -159,7 +159,7 @@ public:
argName[sizeArgName] = '\0';
// send arg value
String argValue = this->templateFn((const char*) argName);
String argValue = this->templateCallback((const char*) argName);
if (argValue.length()) {
// send content before var
if (argStartPos - buf > 0) {
@@ -217,9 +217,9 @@ public:
protected:
FS* fs = nullptr;
canHandleFunction canHandleFn;
beforeSendFunction beforeSendFn;
templateFunction templateFn;
CanHandleCallback canHandleCallback;
BeforeSendCallback beforeSendCallback;
TemplateCallback templateCallback;
String eTag;
const char* uri = nullptr;
const char* path = nullptr;

View File

@@ -2,8 +2,8 @@
class StaticPage : public RequestHandler {
public:
typedef std::function<bool(HTTPMethod, const String&)> canHandleFunction;
typedef std::function<bool()> beforeSendFunction;
typedef std::function<bool(HTTPMethod, const String&)> CanHandleCallback;
typedef std::function<bool()> BeforeSendCallback;
StaticPage(const char* uri, FS* fs, const char* path, const char* cacheHeader = nullptr) {
this->uri = uri;
@@ -12,14 +12,14 @@ public:
this->cacheHeader = cacheHeader;
}
StaticPage* setCanHandleFunction(canHandleFunction val = nullptr) {
this->canHandleFn = val;
StaticPage* setCanHandleCallback(CanHandleCallback callback = nullptr) {
this->canHandleCallback = callback;
return this;
}
StaticPage* setBeforeSendFunction(beforeSendFunction val = nullptr) {
this->beforeSendFn = val;
StaticPage* setBeforeSendCallback(BeforeSendCallback callback = nullptr) {
this->beforeSendCallback = callback;
return this;
}
@@ -29,7 +29,7 @@ public:
#else
bool canHandle(HTTPMethod method, const String& uri) override {
#endif
return method == HTTP_GET && uri.equals(this->uri) && (!this->canHandleFn || this->canHandleFn(method, uri));
return method == HTTP_GET && uri.equals(this->uri) && (!this->canHandleCallback || this->canHandleCallback(method, uri));
}
#if defined(ARDUINO_ARCH_ESP32)
@@ -41,7 +41,7 @@ public:
return false;
}
if (this->beforeSendFn && !this->beforeSendFn()) {
if (this->beforeSendCallback && !this->beforeSendCallback()) {
return true;
}
@@ -87,8 +87,8 @@ public:
protected:
FS* fs = nullptr;
canHandleFunction canHandleFn;
beforeSendFunction beforeSendFn;
CanHandleCallback canHandleCallback;
BeforeSendCallback beforeSendCallback;
String eTag;
const char* uri = nullptr;
const char* path = nullptr;

View File

@@ -24,35 +24,35 @@ public:
String error;
} UpgradeResult;
typedef std::function<bool(HTTPMethod, const String&)> CanHandleFunction;
typedef std::function<bool(const String&)> CanUploadFunction;
typedef std::function<bool(UpgradeType)> BeforeUpgradeFunction;
typedef std::function<void(const UpgradeResult&, const UpgradeResult&)> AfterUpgradeFunction;
typedef std::function<bool(HTTPMethod, const String&)> CanHandleCallback;
typedef std::function<bool(const String&)> CanUploadCallback;
typedef std::function<bool(UpgradeType)> BeforeUpgradeCallback;
typedef std::function<void(const UpgradeResult&, const UpgradeResult&)> AfterUpgradeCallback;
UpgradeHandler(const char* uri) {
this->uri = uri;
}
UpgradeHandler* setCanHandleFunction(CanHandleFunction val = nullptr) {
this->canHandleFn = val;
UpgradeHandler* setCanHandleCallback(CanHandleCallback callback = nullptr) {
this->canHandleCallback = callback;
return this;
}
UpgradeHandler* setCanUploadFunction(CanUploadFunction val = nullptr) {
this->canUploadFn = val;
UpgradeHandler* setCanUploadCallback(CanUploadCallback callback = nullptr) {
this->canUploadCallback = callback;
return this;
}
UpgradeHandler* setBeforeUpgradeFunction(BeforeUpgradeFunction val = nullptr) {
this->beforeUpgradeFn = val;
UpgradeHandler* setBeforeUpgradeCallback(BeforeUpgradeCallback callback = nullptr) {
this->beforeUpgradeCallback = callback;
return this;
}
UpgradeHandler* setAfterUpgradeFunction(AfterUpgradeFunction val = nullptr) {
this->afterUpgradeFn = val;
UpgradeHandler* setAfterUpgradeCallback(AfterUpgradeCallback callback = nullptr) {
this->afterUpgradeCallback = callback;
return this;
}
@@ -62,7 +62,7 @@ public:
#else
bool canHandle(HTTPMethod method, const String& uri) override {
#endif
return method == HTTP_POST && uri.equals(this->uri) && (!this->canHandleFn || this->canHandleFn(method, uri));
return method == HTTP_POST && uri.equals(this->uri) && (!this->canHandleCallback || this->canHandleCallback(method, uri));
}
#if defined(ARDUINO_ARCH_ESP32)
@@ -70,7 +70,7 @@ public:
#else
bool canUpload(const String& uri) override {
#endif
return uri.equals(this->uri) && (!this->canUploadFn || this->canUploadFn(uri));
return uri.equals(this->uri) && (!this->canUploadCallback || this->canUploadCallback(uri));
}
#if defined(ARDUINO_ARCH_ESP32)
@@ -78,8 +78,8 @@ public:
#else
bool handle(WebServer& server, HTTPMethod method, const String& uri) override {
#endif
if (this->afterUpgradeFn) {
this->afterUpgradeFn(this->firmwareResult, this->filesystemResult);
if (this->afterUpgradeCallback) {
this->afterUpgradeCallback(this->firmwareResult, this->filesystemResult);
}
this->firmwareResult.status = UpgradeStatus::NONE;
@@ -109,7 +109,7 @@ public:
return;
}
if (this->beforeUpgradeFn && !this->beforeUpgradeFn(result->type)) {
if (this->beforeUpgradeCallback && !this->beforeUpgradeCallback(result->type)) {
result->status = UpgradeStatus::PROHIBITED;
return;
}
@@ -207,10 +207,10 @@ public:
}
protected:
CanHandleFunction canHandleFn;
CanUploadFunction canUploadFn;
BeforeUpgradeFunction beforeUpgradeFn;
AfterUpgradeFunction afterUpgradeFn;
CanHandleCallback canHandleCallback;
CanUploadCallback canUploadCallback;
BeforeUpgradeCallback beforeUpgradeCallback;
AfterUpgradeCallback afterUpgradeCallback;
const char* uri = nullptr;
UpgradeResult firmwareResult{UpgradeType::FIRMWARE, UpgradeStatus::NONE};