Ersa Wearable Platform
Embedded smartwatch firmware and application framework
Loading...
Searching...
No Matches
http_server.h
Go to the documentation of this file.
1#pragma once
2
3#include "ersa/common/types.h"
4#include <stdint.h>
5#include <string>
6#include <string_view>
7
8namespace ersa::hal {
9
10enum class HttpMethod : uint8_t { Get, Post, Any };
11using HttpHandler = void (*)(void* context);
12
15public:
16 virtual ~IHttpServer() = default;
17 virtual Result<void> begin(uint16_t port) = 0;
18 virtual void route(std::string_view path, HttpMethod method, HttpHandler handler, void* context) = 0;
19 virtual void routeNotFound(HttpHandler handler, void* context) = 0;
20 virtual void handleClient() = 0;
21 virtual void stop() = 0;
22 virtual bool hasArgument(std::string_view name) const = 0;
23 virtual std::string argument(std::string_view name) const = 0;
24 virtual void send(uint16_t status, std::string_view contentType, std::string_view body) = 0;
25};
26
29public:
30 virtual ~IDnsServer() = default;
31 virtual Result<void> begin(uint16_t port, std::string_view domain, const uint8_t address[4]) = 0;
32 virtual void process() = 0;
33 virtual void stop() = 0;
34};
35
36} // namespace ersa::hal
Definition types.h:52
Definition http_server.h:28
virtual void process()=0
virtual void stop()=0
virtual Result< void > begin(uint16_t port, std::string_view domain, const uint8_t address[4])=0
virtual ~IDnsServer()=default
Definition http_server.h:14
virtual void stop()=0
virtual ~IHttpServer()=default
virtual bool hasArgument(std::string_view name) const =0
virtual void route(std::string_view path, HttpMethod method, HttpHandler handler, void *context)=0
virtual std::string argument(std::string_view name) const =0
virtual void routeNotFound(HttpHandler handler, void *context)=0
virtual void handleClient()=0
virtual void send(uint16_t status, std::string_view contentType, std::string_view body)=0
virtual Result< void > begin(uint16_t port)=0
Definition battery.h:7
void(*)(void *context) HttpHandler
Definition http_server.h:11
HttpMethod
Definition http_server.h:10