Route Matchers

namespace HTTPServer

Typedefs

using RequestHandler = std::function<HttpResponse(const HttpRequest&)>
class DynamicRouteMatcher : public HTTPServer::IRouteMatcher

Public Functions

DynamicRouteMatcher(std::string pattern, RequestHandler handler)
virtual bool match(const std::string &path, HttpRequest &req) const override
virtual RequestHandler getHandler() const override
virtual const std::string &getPattern() const override

Private Members

std::string d_pattern
RequestHandler d_handler
class ExactRouteMatcher : public HTTPServer::IRouteMatcher

Public Functions

ExactRouteMatcher(std::string pattern, RequestHandler handler)
virtual bool match(const std::string &path, HttpRequest &req) const override
virtual RequestHandler getHandler() const override
virtual const std::string &getPattern() const override

Private Members

std::string d_pattern
RequestHandler d_handler
class IRouteMatcher

Subclassed by HTTPServer::DynamicRouteMatcher, HTTPServer::ExactRouteMatcher, HTTPServer::WildcardRouteMatcher

Public Functions

virtual ~IRouteMatcher() = default
virtual bool match(const std::string &path, HttpRequest &req) const = 0
virtual RequestHandler getHandler() const = 0
virtual const std::string &getPattern() const = 0
class WildcardRouteMatcher : public HTTPServer::IRouteMatcher

Public Functions

WildcardRouteMatcher(std::string pattern, RequestHandler handler)
virtual bool match(const std::string &path, HttpRequest &req) const override
virtual RequestHandler getHandler() const override
virtual const std::string &getPattern() const override
size_t getPrefixLength() const

Private Members

std::string d_pattern
std::string d_prefix
RequestHandler d_handler