26#ifndef ROUTER_SRC_HTTP_SRC_HTTP_REQUEST_ROUTER_H_
27#define ROUTER_SRC_HTTP_SRC_HTTP_REQUEST_ROUTER_H_
29#include <unicode/regex.h>
33#include <shared_mutex>
49 void append(
const std::string &url_host,
50 const std::string &url_regex_str,
51 std::unique_ptr<RequestHandler>
cb);
52 void remove(
const void *handler_id);
53 void remove(
const std::string &url_host,
const std::string &url_regex_str);
55 void set_default_route(std::unique_ptr<RequestHandler>
cb);
56 void clear_default_route();
59 void require_realm(
const std::string &realm) { require_realm_ = realm; }
65 : url_pattern_(
std::move(url_pattern)), handler_(
std::move(
handler)) {}
72 const icu::UnicodeString &input)
const;
76 const std::string &
url_pattern()
const {
return url_pattern_; }
89 std::string_view
path);
91 std::map<std::string, std::vector<RouteMatcher>, std::less<>>
Definition: http_request_router.h:62
RouteMatcher(std::string url_pattern, BaseRequestHandlerPtr handler)
Definition: http_request_router.h:64
std::unique_ptr< icu::RegexPattern > regex_pattern_
Definition: http_request_router.h:82
const std::string & url_pattern() const
Definition: http_request_router.h:76
std::string url_pattern_
Definition: http_request_router.h:79
BaseRequestHandlerPtr handler_
Definition: http_request_router.h:80
BaseRequestHandlerPtr handler() const
Definition: http_request_router.h:74
Definition: http_request_router.h:44
std::shared_mutex route_mtx_
Definition: http_request_router.h:97
void require_realm(const std::string &realm)
Definition: http_request_router.h:59
std::shared_ptr< http::base::RequestHandler > BaseRequestHandlerPtr
Definition: http_request_router.h:47
std::string require_realm_
Definition: http_request_router.h:95
std::map< std::string, std::vector< RouteMatcher >, std::less<> > request_handlers_
Definition: http_request_router.h:92
BaseRequestHandlerPtr default_route_
Definition: http_request_router.h:94
The handler class is the interface for dynamically loadable storage engines.
Definition: handler.h:4618
Definition: request_handler.h:36
Definition: request_handler_interface.h:36
virtual void route(http::base::Request &request)=0
Definition: expected.h:286
#define HTTP_SERVER_LIB_EXPORT
Definition: http_server_lib_export.h:15
static char * path
Definition: mysqldump.cc:150
static bool cb(unsigned long long new_value)
Definition: option_usage.cc:45
Oauth2Handler::RequestHandler RequestHandler
Definition: oauth2_facebook_handler.cc:45
static mysql_service_status_t remove(reference_caching_channel channel, const char *implementation_name) noexcept
Definition: component.cc:137
Definition: gcs_xcom_synode.h:64