24#ifndef NAWA_REQUESTHANDLER_H
25#define NAWA_REQUESTHANDLER_H
58 static std::unique_ptr<RequestHandler>
72 static std::unique_ptr<RequestHandler>
80 void setAppRequestHandler(std::shared_ptr<HandleRequestFunctionWrapper> handleRequestFunction)
noexcept;
92 [[nodiscard]] std::shared_ptr<Config const>
getConfig() const noexcept;
117 std::optional<
Config> config) noexcept;
134 virtual
void stop() noexcept = 0;
156 virtual void join() noexcept = 0;
Options to check the path and invoke certain actions before forwarding the request to the app.
Reader for config files and accessor to config values.
Function wrapper for handleRequest functions of nawa apps.
virtual ~RequestHandler()
virtual void stop() noexcept=0
std::shared_ptr< Config const > getConfig() const noexcept
virtual void restart() noexcept
void handleRequest(Connection &connection)
void setConfig(Config config) noexcept
virtual void join() noexcept=0
void setAccessFilters(AccessFilterList accessFilters) noexcept
static std::unique_ptr< RequestHandler > newRequestHandler(std::shared_ptr< HandleRequestFunctionWrapper > const &handleRequestFunction, Config config, int concurrency)
void reconfigure(std::optional< std::shared_ptr< HandleRequestFunctionWrapper > > handleRequestFunction, std::optional< AccessFilterList > accessFilters, std::optional< Config > config) noexcept
virtual void terminate() noexcept=0
void setAppRequestHandler(std::shared_ptr< HandleRequestFunctionWrapper > handleRequestFunction) noexcept
Macros for frequently used patterns.
#define NAWA_DEFAULT_CONSTRUCTOR_DEF(Class)
#define NAWA_PRIVATE_DATA()
std::function< int(nawa::Connection &)> HandleRequestFunction