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_RESPONSE_H
43#define EXPRESS_RESPONSE_H
45namespace web::http::
server {
54#ifndef DOXYGEN_SHOULD_SKIP_THIS
60#include <nlohmann/json_fwd.hpp>
82 void json(
const nlohmann::json& json);
84 void download(
const std::string& file,
const std::function<
void(
int)>& onError);
85 void download(
const std::string& file,
const std::string& fileName,
const std::function<
void(
int)>& onError);
87 void redirect(
const std::string& loc,
const std::string& html = {});
88 void redirect(
int state,
const std::string& loc,
const std::string& html = {});
90 void sendStatus(
int state,
const std::string& html = {});
92 Response& attachment(
const std::string& fileName =
"");
93 Response& location(
const std::string& loc);
94 Response& vary(
const std::string& field);
102 Response& append(
const std::string& field,
const std::string& value);
103 Response& set(
const std::string& field,
const std::string& value,
bool overwrite =
true);
104 Response& set(
const std::map<std::string, std::string>& headers,
bool overwrite =
true);
105 Response& type(
const std::string& type);
106 Response& cookie(
const std::string& name,
const std::string& value,
const std::map<std::string, std::string>& options = {});
107 Response& clearCookie(
const std::string& name,
const std::map<std::string, std::string>& options = {});
108 Response& setTrailer(
const std::string& field,
const std::string& value,
bool overwrite =
true);
110 void send(
const char* chunk, std::size_t chunkLen);
111 void send(
const std::string& chunk);
112 void upgrade(
const std::shared_ptr<
Request>& request,
const std::function<
void(
const std::string)>& status);
114 void sendFile(
const std::string& file,
const std::function<
void(
int)>& callback);
118 Response& sendFragment(
const std::string& chunk =
"");
120 const std::string& header(
const std::string& field);
#define DECLARE_ROUTER_REQUESTMETHOD(METHOD)
bool caseInsensitiveRouting
const std::shared_ptr< Request > & getRequest()
bool setStrictRouting(bool strictRouting)
Controller(const std::shared_ptr< web::http::server::Request > &request, const std::shared_ptr< web::http::server::Response > &response)
bool getStrictRouting() const
bool setCaseInsensitiveRouting(bool caseInsensitiveRouting)
std::shared_ptr< Response > response
Controller(const Controller &controller)
void setCurrentRoute(Route *currentRoute)
void setRootRoute(RootRoute *rootRoute)
bool getCaseInsensitiveRouting() const
std::shared_ptr< Request > request
Controller & operator=(const Controller &controller) noexcept
const std::shared_ptr< Response > & getResponse()
Next(Controller &controller)
web::http::CiStringMap< std::string > cookies
Request(Request &&) noexcept=delete
Request & operator=(Request &&) noexcept=delete
std::map< std::string, std::string > params
web::http::CiStringMap< std::string > queries
Request(const std::shared_ptr< web::http::server::Request > &request) noexcept
std::shared_ptr< web::http::server::Request > requestBase
Request(Request &)=delete
web::http::CiStringMap< std::string > headers
web::http::CiStringMap< std::string > trailer
Request & operator=(Request &)=delete
std::shared_ptr< web::http::server::Response > responseBase
Response(Response &&) noexcept=delete
Response & operator=(Response &&) noexcept=delete
Response & sendFragment(const char *chunk, std::size_t chunkLen)
Response(const std::shared_ptr< web::http::server::Response > &response) noexcept
Response & status(int status)
Response(Response &)=delete
void send(const char *chunk, std::size_t chunkLen)
Response & operator=(Response &)=delete
web::http::server::SocketContext * getSocketContext() const
const Router & setCaseInsensitiveRouting(bool caseInsensitiveRouting=true) const
const Router & setStrictRouting(bool strictRouting=true) const
Router(const Router &)=default
std::list< std::string > getRoutes() const
std::shared_ptr< RootRoute > rootRoute
VerboseRequest & operator=(const VerboseRequest &)=delete
VerboseRequest(Details details)
VerboseRequest(const VerboseRequest &)=delete
void required(CLI::Option *opt, bool req=true)
constexpr AttributeProxy(const Attribute &attribute)
constexpr Attribute & operator*()
std::map< std::string, std::shared_ptr< void > > attributes
std::string attributeType
constexpr bool setAttribute(const Attribute &attribute, bool overwrite=false)
constexpr bool setAttribute(const Attribute &&attribute, bool overwrite=false)
std::shared_ptr< void > attribute
constexpr bool getAttribute(const std::function< void(Attribute &)> &onFound) const
int main(int argc, char *argv[])
static express::Router getRouter()
static WebApp getWebApp(const std::string &name)
static WebApp getWebApp(const std::string &name)
fixed_string(char const (&)[N]) -> fixed_string< N - 1 >
auto operator<=>(const fixed_string &) const =default
constexpr fixed_string(char const *s)
constexpr operator char const *() const