Route& METHOD(const RootRoute& rootRoute) const; \
Route& METHOD(const std::string& relativeMountPath, const RootRoute& rootRoute) const; \
Route& METHOD(const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&)>& lambda) const; \
Route& METHOD(const std::string& relativeMountPath, \
const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&)>& lambda) const; \
Route& METHOD(const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&, Next&)>& lambda) const; \
Route& METHOD(const std::string& relativeMountPath, \
const std::function<void(const std::shared_ptr<Request>&, const std::shared_ptr<Response>&, Next&)>& lambda) const;
77 {
78
79 class RootRoute : public Route {
80 public:
81 RootRoute() = default;
82
83 private:
84 bool setStrictRouting(bool strictRouting);
85
86 void dispatch(Controller&& controller);
87 void dispatch(Controller& controller);
88
89 std::shared_ptr<dispatcher::RouterDispatcher> getDispatcher() const;
90 std::list<Route>& routes() const;
91
92 std::list<std::string> getRoutes() const;
93
94 public:
106
107 friend class Router;
108 friend class Controller;
109
110 template <typename Server>
111 friend class WebAppT;
112 };
113
114}
115
116#endif
#define DECLARE_ROOTROUTE_REQUESTMETHOD(METHOD)