36 lines
887 B
C++
36 lines
887 B
C++
#ifndef CPR_INTERCEPTOR_H
|
|
#define CPR_INTERCEPTOR_H
|
|
|
|
#include "cpr/response.h"
|
|
#include "cpr/session.h"
|
|
|
|
namespace cpr {
|
|
|
|
class Interceptor {
|
|
public:
|
|
enum class ProceedHttpMethod {
|
|
GET_REQUEST = 0,
|
|
POST_REQUEST,
|
|
PUT_REQUEST,
|
|
DELETE_REQUEST,
|
|
PATCH_REQUEST,
|
|
HEAD_REQUEST,
|
|
OPTIONS_REQUEST,
|
|
DOWNLOAD_CALLBACK_REQUEST,
|
|
DOWNLOAD_FILE_REQUEST,
|
|
};
|
|
|
|
virtual ~Interceptor() = default;
|
|
virtual Response intercept(Session& session) = 0;
|
|
|
|
protected:
|
|
static Response proceed(Session& session);
|
|
static Response proceed(Session& session, ProceedHttpMethod httpMethod);
|
|
static Response proceed(Session& session, ProceedHttpMethod httpMethod, std::ofstream& file);
|
|
static Response proceed(Session& session, ProceedHttpMethod httpMethod, const WriteCallback& write);
|
|
};
|
|
|
|
} // namespace cpr
|
|
|
|
|
|
#endif |