Files
nuki_hub/lib/PsychicHttp/src/PsychicMiddlewareChain.h
2024-12-30 14:37:09 +01:00

28 lines
683 B
C++

#ifndef PsychicMiddlewareChain_h
#define PsychicMiddlewareChain_h
#include "PsychicCore.h"
#include "PsychicMiddleware.h"
#include "PsychicRequest.h"
#include "PsychicResponse.h"
/*
* PsychicMiddlewareChain - handle tracking and executing our chain of middleware objects
* */
class PsychicMiddlewareChain
{
public:
virtual ~PsychicMiddlewareChain();
void addMiddleware(PsychicMiddleware* middleware);
void addMiddleware(PsychicMiddlewareCallback fn);
void removeMiddleware(PsychicMiddleware* middleware);
esp_err_t runChain(PsychicRequest* request, PsychicMiddlewareNext finalizer);
protected:
std::list<PsychicMiddleware*> _middleware;
};
#endif