]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/HasComponentData.h
2 * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
9 #ifndef SQUID_ACLHASCOMPONENTDATA_H
10 #define SQUID_ACLHASCOMPONENTDATA_H
12 #include "acl/Checklist.h"
16 class ACLHasComponentData
: public ACLData
<ACLChecklist
*>
18 MEMPROXY_CLASS(ACLHasComponentData
);
21 ACLHasComponentData();
24 virtual bool match(ACLChecklist
*) override
;
25 virtual SBufList
dump() const override
;
26 virtual void parse() override
;
27 virtual bool empty() const override
{ return false; }
28 virtual ACLData
<ACLChecklist
*> *clone() const override
;
31 enum ComponentKind
{ coRequest
= 0, coResponse
, coAle
, coEnd
};
32 void parseComponent(const char *token
);
34 static const SBuf RequestStr
;
35 static const SBuf ResponseStr
;
36 static const SBuf AleStr
;
38 typedef bool (ACLChecklist::*ComponentCheck
)() const;
39 /// component check callbacks, ordered by component kind ID
40 std::vector
<ComponentCheck
> componentMethods
;