roar
|
#include <roar/routing/proto_route.hpp>
#include <roar/utility/overloaded.hpp>
#include <roar/literals/regex.hpp>
#include <roar/session/session.hpp>
#include <roar/routing/flexible_provider.hpp>
#include <roar/request.hpp>
#include <boost/beast/http/verb.hpp>
#include <boost/beast/http/empty_body.hpp>
#include <boost/describe/class.hpp>
#include <string_view>
#include <optional>
#include <variant>
#include <regex>
#include <string>
#include <filesystem>
Go to the source code of this file.
Classes | |
struct | Roar::ServeOptions< RequestListenerT > |
struct | Roar::FileAndStatus |
struct | Roar::RouteInfo< RequestListenerT > |
This class is what is used in ROAR_GET, ROAR_PUT, ... requests All options you can set for routes behind these macros are part of this object. More... | |
struct | Roar::ServeInfo< RequestListenerT > |
Namespaces | |
namespace | Roar |
Macros | |
#define | ROUTE_INFO_COMMON() |
#define | ROAR_MAKE_LISTENER(ListenerType) using this_type = ListenerType |
Necessary to make pointer to members. | |
#define | ROAR_ROUTE_I(HandlerName, DefaultVerb) |
#define | ROAR_SERVE(HandlerName) |
#define | ROAR_ROUTE(HandlerName) ROAR_ROUTE_I(HandlerName, get) |
Define a route. route. | |
#define | ROAR_GET(HandlerName) ROAR_ROUTE_I(HandlerName, get) |
Define route for GET, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""}) | |
#define | ROAR_POST(HandlerName) ROAR_ROUTE_I(HandlerName, post) |
Define route for POST, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""}) | |
#define | ROAR_PUT(HandlerName) ROAR_ROUTE_I(HandlerName, put) |
Define route for PUT, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""}) | |
#define | ROAR_OPTIONS(HandlerName) ROAR_ROUTE_I(HandlerName, options) |
Define route for OPTIONS, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""}) | |
#define | ROAR_TRACE(HandlerName) ROAR_ROUTE_I(HandlerName, trace) |
Define route for TRACE, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""}) | |
#define | ROAR_HEAD(HandlerName) ROAR_ROUTE_I(HandlerName, head) |
Define route for HEAD, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""}) | |
#define | ROAR_DELETE(HandlerName) ROAR_ROUTE_I(HandlerName, delete_) |
Define route for DELETE, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""}) | |
Typedefs | |
template<typename RequestListenerT > | |
using | Roar::HandlerType = void(RequestListenerT::*)(Session &, Request< boost::beast::http::empty_body > &&) |
template<typename RequestListenerT > | |
using | Roar::ServeHandlerType = ServeDecision(RequestListenerT::*)(Session &, Request< boost::beast::http::empty_body > const &, FileAndStatus const &, ServeOptions< RequestListenerT > &options) |
Enumerations | |
enum class | Roar::ServeDecision { Roar::Continue , Roar::Deny , Roar::Handled } |
enum class | Roar::RoutePathType { Roar::Unspecified , Roar::RegularString , Roar::Regex , Roar::ServedDirectory } |
Functions | |
template<typename RequestListenerT > | |
auto | Roar::extendRouteInfo (RouteInfo< RequestListenerT > info, HandlerType< RequestListenerT > handler) |
template<typename RequestListenerT > | |
auto | Roar::extendRouteInfoForServe (ServeInfo< RequestListenerT > info, ServeHandlerType< RequestListenerT > handler) |
#define ROAR_DELETE | ( | HandlerName | ) | ROAR_ROUTE_I(HandlerName, delete_) |
Define route for DELETE, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""})
#define ROAR_GET | ( | HandlerName | ) | ROAR_ROUTE_I(HandlerName, get) |
Define route for GET, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""})
#define ROAR_HEAD | ( | HandlerName | ) | ROAR_ROUTE_I(HandlerName, head) |
Define route for HEAD, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""})
#define ROAR_MAKE_LISTENER | ( | ListenerType | ) | using this_type = ListenerType |
Necessary to make pointer to members.
#define ROAR_OPTIONS | ( | HandlerName | ) | ROAR_ROUTE_I(HandlerName, options) |
Define route for OPTIONS, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""})
#define ROAR_POST | ( | HandlerName | ) | ROAR_ROUTE_I(HandlerName, post) |
Define route for POST, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""})
#define ROAR_PUT | ( | HandlerName | ) | ROAR_ROUTE_I(HandlerName, put) |
Define route for PUT, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""})
#define ROAR_ROUTE | ( | HandlerName | ) | ROAR_ROUTE_I(HandlerName, get) |
Define a route. route.
#define ROAR_ROUTE_I | ( | HandlerName, | |
DefaultVerb | |||
) |
#define ROAR_SERVE | ( | HandlerName | ) |
#define ROAR_TRACE | ( | HandlerName | ) | ROAR_ROUTE_I(HandlerName, trace) |
Define route for TRACE, others can be accessed via ROAR_ROUTE({.verb = ..., .path = ""})
#define ROUTE_INFO_COMMON | ( | ) |