PatternHandler.h 745 B

12345678910111213141516171819202122232425262728293031
  1. #ifndef _PATTERNHANDLER_H
  2. #define _PATTERNHANDLER_H
  3. #include <Arduino.h>
  4. #include <ESP8266WebServer.h>
  5. #include <functional>
  6. #include <TokenIterator.h>
  7. #include <UrlTokenBindings.h>
  8. class PatternHandler : public RequestHandler {
  9. public:
  10. typedef std::function<void(UrlTokenBindings*)> TPatternHandlerFn;
  11. PatternHandler(const String& pattern,
  12. const HTTPMethod method,
  13. const TPatternHandlerFn fn);
  14. ~PatternHandler();
  15. bool canHandle(HTTPMethod requestMethod, String requestUri) override;
  16. bool handle(ESP8266WebServer& server, HTTPMethod requesetMethod, String requestUri) override;
  17. private:
  18. char* _pattern;
  19. TokenIterator* patternTokens;
  20. const HTTPMethod method;
  21. const PatternHandler::TPatternHandlerFn fn;
  22. };
  23. #endif