#ifndef SQUID_ADAPTATION__ACCESS_CHECK_H
#define SQUID_ADAPTATION__ACCESS_CHECK_H
-#include "base/AsyncJob.h"
+#include "acl/Acl.h"
#include "adaptation/Elements.h"
#include "adaptation/forward.h"
+#include "adaptation/Initiator.h"
#include "adaptation/ServiceFilter.h"
+#include "base/AsyncJob.h"
class HttpRequest;
class HttpReply;
// use this to start async ACL checks; returns true if started
static bool Start(Method method, VectPoint vp, HttpRequest *req,
- HttpReply *rep, AccessCheckCallback *cb, void *cbdata);
+ HttpReply *rep, Adaptation::Initiator *initiator);
protected:
// use Start to start adaptation checks
- AccessCheck(const ServiceFilter &aFilter, AccessCheckCallback *, void *);
+ AccessCheck(const ServiceFilter &aFilter, Adaptation::Initiator *);
~AccessCheck();
private:
const ServiceFilter filter;
- AccessCheckCallback *callback;
- void *callback_data;
+ CbcPointer<Adaptation::Initiator> theInitiator; ///< the job which ordered this access check
ACLFilledChecklist *acl_checklist;
typedef int Candidate;
public:
void checkCandidates();
- static void AccessCheckCallbackWrapper(int, void*);
- void noteAnswer(int answer);
+ static void AccessCheckCallbackWrapper(allow_t, void*);
+ void noteAnswer(allow_t answer);
protected:
// AsyncJob API
virtual void start();
virtual bool doneAll() const { return false; } /// not done until mustStop
+ bool usedDynamicRules();
void check();
private: