roar
Loading...
Searching...
No Matches
route.hpp
Go to the documentation of this file.
1#pragma once
2
6
7#include <boost/beast/http/empty_body.hpp>
8
9#include <memory>
10
11namespace Roar
12{
13 class Session;
14 template <typename>
15 class Request;
16
20 class Route
21 {
22 public:
23 Route(ProtoRoute proto);
25
33 void operator()(
34 Session& session,
36 StandardResponseProvider const& standardResponseProvider) const;
37
47 bool matches(std::string const& path, std::vector<std::string>& matches) const;
48
49 private:
50 struct Implementation;
51 std::unique_ptr<Implementation> impl_;
52 };
53}
This class extends the boost::beast::http::request<BodyT> with additional convenience.
Definition request.hpp:52
A route represents the mapping of a verb+path to a user provided function.
Definition route.hpp:21
bool matches(std::string const &path, std::vector< std::string > &matches) const
Does this route match the given path?
Definition route.cpp:41
void operator()(Session &session, Request< boost::beast::http::empty_body > req, StandardResponseProvider const &standardResponseProvider) const
Calls the associated function of this route.
Definition route.cpp:21
ROAR_PIMPL_SPECIAL_FUNCTIONS(Route)
std::unique_ptr< Implementation > impl_
Definition route.hpp:51
Definition session.hpp:41
Implement your own StandardResponseProvider to make custom 404 pages etc.
Definition standard_response_provider.hpp:21
Definition authorization.hpp:10
A proper Route is built up from this object. This object is usually created internally.
Definition proto_route.hpp:45
Definition route.cpp:9