drogon
C++14/17-based HTTP application framework
Loading...
Searching...
No Matches
drogon::HttpMiddlewareBase Class Referenceabstract

The abstract base class for middleware. More...

#include <drogon/HttpMiddleware.h>

Inheritance diagram for drogon::HttpMiddlewareBase:
Collaboration diagram for drogon::HttpMiddlewareBase:

Public Member Functions

virtual void invoke (const HttpRequestPtr &req, MiddlewareNextCallback &&nextCb, MiddlewareCallback &&mcb)=0
Public Member Functions inherited from drogon::DrObjectBase
virtual const std::string & className () const
 Get the class name.
virtual bool isClass (const std::string &class_name) const
 Return true if the class name is 'class_name'.

Detailed Description

The abstract base class for middleware.

Member Function Documentation

◆ invoke()

virtual void drogon::HttpMiddlewareBase::invoke ( const HttpRequestPtr & req,
MiddlewareNextCallback && nextCb,
MiddlewareCallback && mcb )
pure virtual

This virtual function should be overridden in subclasses.

Example:

void invoke(const HttpRequestPtr &req,
MiddlewareNextCallback &&nextCb,
MiddlewareCallback &&mcb) override
{
if (req->path() == "/some/path") {
// intercept directly
return;
}
// Do something before calling the next middleware
nextCb([mcb = std::move(mcb)](const HttpResponsePtr &resp) {
// Do something after the next middleware returns
mcb(resp);
});
}
virtual void invoke(const HttpRequestPtr &req, MiddlewareNextCallback &&nextCb, MiddlewareCallback &&mcb)=0
static HttpResponsePtr newNotFoundResponse(const HttpRequestPtr &req=HttpRequestPtr())
Create a response which returns a 404 page.

Implemented in drogon::HttpOptionsMiddlewareImpl< Derived, AutoCreation >, drogon::HttpOptionsMiddlewareImpl< HttpOptionsMiddleware, false >, and drogon::HttpOptionsMiddlewareImpl< HttpOptionsMiddlewareAuto, true >.


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