SNode.C
Loading...
Searching...
No Matches
express::middleware::VHost Class Reference

#include <VHost.h>

Inheritance diagram for express::middleware::VHost:
Collaboration diagram for express::middleware::VHost:

Protected Member Functions

 VHost (const std::string &host)

Static Protected Member Functions

static class VHost & instance (const std::string &host)

Private Attributes

std::string host

Friends

class VHost & VHost (const std::string &host)

Additional Inherited Members

Public Member Functions inherited from express::Router
 Router ()
 Router (const Router &)=default
const Router & setStrictRouting (bool strictRouting=true) const
const Router & setCaseInsensitiveRouting (bool caseInsensitiveRouting=true) const
const Router & setMergeParams (bool mergeParams=true) const
std::list< std::string > getRoutes () const
Route & use (const Router &router) const
Route & use (const std::string &relativeMountPath, const Router &router) const
Route & use (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & use (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & use (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & use (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & use (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & use (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & use (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & use (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & all (const Router &router) const
Route & all (const std::string &relativeMountPath, const Router &router) const
Route & all (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & all (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & all (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & all (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & all (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & all (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & all (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & all (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & get (const Router &router) const
Route & get (const std::string &relativeMountPath, const Router &router) const
Route & get (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & get (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & get (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & get (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & get (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & get (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & get (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & get (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & put (const Router &router) const
Route & put (const std::string &relativeMountPath, const Router &router) const
Route & put (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & put (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & put (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & put (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & put (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & put (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & put (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & put (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & post (const Router &router) const
Route & post (const std::string &relativeMountPath, const Router &router) const
Route & post (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & post (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & post (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & post (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & post (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & post (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & post (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & post (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & del (const Router &router) const
Route & del (const std::string &relativeMountPath, const Router &router) const
Route & del (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & del (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & del (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & del (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & del (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & del (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & del (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & del (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & connect (const Router &router) const
Route & connect (const std::string &relativeMountPath, const Router &router) const
Route & connect (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & connect (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & connect (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & connect (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & connect (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & connect (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & connect (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & connect (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & options (const Router &router) const
Route & options (const std::string &relativeMountPath, const Router &router) const
Route & options (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & options (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & options (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & options (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & options (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & options (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & options (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & options (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & trace (const Router &router) const
Route & trace (const std::string &relativeMountPath, const Router &router) const
Route & trace (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & trace (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & trace (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & trace (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & trace (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & trace (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & trace (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & trace (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & patch (const Router &router) const
Route & patch (const std::string &relativeMountPath, const Router &router) const
Route & patch (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & patch (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & patch (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & patch (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & patch (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & patch (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & patch (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & patch (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Route & head (const Router &router) const
Route & head (const std::string &relativeMountPath, const Router &router) const
Route & head (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & head (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
Route & head (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
Route & head (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
template<typename... Lambdas>
Route & head (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & head (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & head (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
template<typename... Lambdas>
Route & head (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
Protected Attributes inherited from express::Router
std::shared_ptr< RootRoute > rootRoute = nullptr

Detailed Description

Definition at line 55 of file VHost.h.

Constructor & Destructor Documentation

◆ VHost()

express::middleware::VHost::VHost ( const std::string & host)
explicitprotected

Definition at line 79 of file VHost.cpp.

80 : host(host) {
81 use("/", [&host = this->host] MIDDLEWARE(req, res, next) {
82 if (req->get("Host") == host || hostWithoutPort(req->get("Host")) == host) {
83 next();
84 } else {
85 next("router");
86 }
87 });
88 }
#define MIDDLEWARE(req, res, next)
Definition Router.h:63
Route & use(const Router &router) const
Definition Router.cpp:100
static std::string_view hostWithoutPort(std::string_view host)
Definition VHost.cpp:52

References express::Request::get(), host, express::middleware::hostWithoutPort(), and express::Next::operator()().

Referenced by instance().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ instance()

class VHost & express::middleware::VHost::instance ( const std::string & host)
staticprotected

Definition at line 90 of file VHost.cpp.

90 {
91 // Keep all created vhost middlewares alive
92 static std::map<std::string, std::shared_ptr<class VHost>> vHostMiddlewares;
93
94 if (!vHostMiddlewares.contains(host)) {
95 vHostMiddlewares[host] = std::shared_ptr<VHost>(new VHost(host));
96 }
97
98 return *vHostMiddlewares[host];
99 }
VHost(const std::string &host)
Definition VHost.cpp:79

References VHost().

Referenced by VHost.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VHost

class VHost & VHost ( const std::string & host)
friend

Definition at line 102 of file VHost.cpp.

102 {
103 return VHost::instance(host);
104 }
static class VHost & instance(const std::string &host)
Definition VHost.cpp:90

References instance().

Member Data Documentation

◆ host

std::string express::middleware::VHost::host
private

Definition at line 61 of file VHost.h.

Referenced by VHost().


The documentation for this class was generated from the following files: