2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
42#ifndef EXPRESS_REQUEST_H
43#define EXPRESS_REQUEST_H
45#include "utils/AttributeInjector.h"
47namespace web::http::
server {
51#ifndef DOXYGEN_SHOULD_SKIP_THIS
53#include "web/http/CiStringMap.h"
74 const std::string&
param(
const std::string& id,
const std::string& fallBack =
"");
81 std::map<std::string, std::string>
params;
92 const std::string&
get(
const std::string& key,
int i = 0)
const;
93 const std::string&
cookie(
const std::string& key)
const;
94 const std::string&
query(
const std::string& key)
const;
#define DECLARE_ROUTER_REQUESTMETHOD(METHOD)
#define APPLICATION(req, res)
#define MIDDLEWARE(req, res, next)
static void init(int argc, char *argv[])
static int start(const utils::Timeval &timeOut={LONG_MAX, 0})
static constexpr int DISABLED
static constexpr int ERROR
static constexpr int FATAL
void next(const std::string &how) const
bool dispatchNext(bool strictRouting, bool caseInsensitiveRouting, bool mergeParams)
Controller(const std::shared_ptr< web::http::server::Request > &request, const std::shared_ptr< web::http::server::Response > &response)
const std::shared_ptr< Request > & getRequest() const
const std::shared_ptr< Response > & getResponse() const
std::shared_ptr< Response > response
Controller(const Controller &controller)
void setCurrentRoute(Route *currentRoute)
bool nextRouterCalled() const
void setRootRoute(RootRoute *rootRoute)
std::shared_ptr< Request > request
Controller & operator=(const Controller &controller) noexcept
void operator()(const std::string &how="") const
Next(Controller &controller)
web::http::CiStringMap< std::string > cookies
Request(Request &&) noexcept=delete
const std::string & cookie(const std::string &key) const
Request & operator=(Request &&) noexcept=delete
std::map< std::string, std::string > params
const std::string & get(const std::string &key, int i=0) const
Request(const std::shared_ptr< web::http::server::Request > &request) noexcept
std::shared_ptr< web::http::server::Request > requestBase
Request(Request &)=delete
const std::string & query(const std::string &key) const
web::http::CiStringMap< std::string > headers
const std::string & param(const std::string &id, const std::string &fallBack="")
std::map< std::string, std::string > queries
web::http::CiStringMap< std::string > trailer
Request & operator=(Request &)=delete
Response & set(const std::string &field, const std::string &value, bool overwrite=true)
void send(const std::string &chunk)
Response & status(int status)
void json(const nlohmann::json &json)
Route & head(const Router &router) const
Route & all(const Router &router) const
const Router & setCaseInsensitiveRouting(bool caseInsensitiveRouting=true) const
const Router & setStrictRouting(bool strictRouting=true) const
Route & options(const Router &router) const
Route & connect(const Router &router) const
Route & post(const Router &router) const
Route & del(const Router &router) const
Router(const Router &)=default
Route & use(const Router &router) const
Route & get(const Router &router) const
Route & trace(const Router &router) const
Route & patch(const Router &router) const
const Router & setMergeParams(bool mergeParams=true) const
std::list< std::string > getRoutes() const
Route & put(const Router &router) const
std::shared_ptr< RootRoute > rootRoute
WebAppT(const std::string &name, const Router &router)
typename Server::SocketConnection SocketConnection
express::Response Response
typename Server::SocketAddress SocketAddress
WebAppT(const std::string &name)
static void init(int argc, char *argv[])
static core::TickStatus tick(const utils::Timeval &timeOut=0)
static core::State state()
static int start(const utils::Timeval &timeOut={LONG_MAX, 0})
WebApp(const Router &router)
std::string toString(bool expanded=true) const override
const Super & listen(uint16_t port, const std::function< void(const SocketAddress &, core::socket::State)> &onStatus) const
constexpr bool setAttribute(const Attribute &&attribute, const std::string &subKey="", bool overwrite=false)
bool getAttribute(const std::function< void(Attribute &)> &onFound, const std::string &subKey="") const
Timeval(const std::initializer_list< time_t > &initList) noexcept
int main(int argc, char *argv[])
std::vector< json > Trace
static void ensureTrace(const std::shared_ptr< express::Request > &req)
static void tracePush(const std::shared_ptr< express::Request > &req, const std::string &label)
static json snapshot(const std::shared_ptr< express::Request > &req, const std::string &label)
static json traceGet(const std::shared_ptr< express::Request > &req)
web::http::server::Server< net::in::stream::legacy::SocketServer > Server