void setMaxSize(uint maxSize);
void setCachePostRequests(bool value) { cachePostRequests = value; }
void setIgnoreHostname(bool value) { ignoreHostname = value; }
+ auto &getValidators() { return validators; };
HttpReply *request(const HttpRequest &req);
private:
LocalCache *cache;
bool cachePostRequests;
bool ignoreHostname = false;
+
+ /// Mapping is MIME -> validating function
+ /// Use * as MIME to define a catch-all validator
+ QMap<QByteArray, std::function<bool(const HttpReply &)>> validators;
};
class CachedHttpReply : public HttpReply {
Q_OBJECT
public:
- WrappedHttpReply(LocalCache *cache, const QByteArray &key, HttpReply *httpReply);
+ WrappedHttpReply(CachedHttp &cachedHttp,
+ LocalCache *cache,
+ const QByteArray &key,
+ HttpReply *httpReply);
QUrl url() const { return httpReply->url(); }
int statusCode() const { return httpReply->statusCode(); }
QByteArray body() const { return httpReply->body(); }
void originFinished(const HttpReply &reply);
private:
+ CachedHttp &cachedHttp;
LocalCache *cache;
QByteArray key;
HttpReply *httpReply;