1#ifndef SSGXLIB_SSGX_HTTP_T_FILTER_H
2#define SSGXLIB_SSGX_HTTP_T_FILTER_H
7#include <unordered_map>
72 filters_.emplace_back(std::move(filter));
87 for (
auto& filter : filters_) {
88 if (!filter->Before(request, response)) {
93 handler(request, response);
95 for (
auto& filter : filters_) {
96 filter->After(request, response);
103 std::vector<std::unique_ptr<Filter>> filters_;
A class to manage a chain of filters for request processing.
Definition ssgx_http_t_filter.h:61
void AddFilter(std::unique_ptr< Filter > &&filter)
Add a filter to the filter chain.
Definition ssgx_http_t_filter.h:71
Response Execute(Request &request, const std::function< void(Request &, Response &)> &handler)
Execute the filter chain for a request.
Definition ssgx_http_t_filter.h:84
Abstract base class for HTTP request filters.
Definition ssgx_http_t_filter.h:20
virtual ~Filter()=default
Destructor.
virtual void After(Request &request, Response &response)
Perform filtering after the request handler is executed.
Definition ssgx_http_t_filter.h:45
virtual bool Before(Request &request, Response &response)
Perform filtering before the request handler is executed.
Definition ssgx_http_t_filter.h:32
HTTP request class to represent an incoming HTTP request.
Definition ssgx_http_t_structs.h:109
HTTP response class to represent an outgoing HTTP response.
Definition ssgx_http_t_structs.h:424
Definition ssgx_attestation_t.h:6