1 /*
2  * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
3  *
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.
7  */
8 
9 #ifndef SQUID_ACL_FORWARD_H
10 #define SQUID_ACL_FORWARD_H
11 
12 #include "base/RefCount.h"
13 
14 class ACL;
15 class ACLChecklist;
16 class ACLFilledChecklist;
17 class ACLList;
18 
19 class AclDenyInfoList;
20 class AclSizeLimit;
21 
22 namespace Acl
23 {
24 
25 class Address;
26 class InnerNode;
27 class NotNode;
28 class AndNode;
29 class OrNode;
30 class Tree;
31 
32 /// prepares to parse ACLs configuration
33 void Init(void);
34 
35 } // namespace Acl
36 
37 class allow_t;
38 typedef void ACLCB(allow_t, void *);
39 
40 #define ACL_NAME_SZ 64
41 
42 // TODO: Consider renaming all users and removing. Cons: hides the difference
43 // between ACLList tree without actions and acl_access Tree with actions.
44 #define acl_access Acl::Tree
45 #define ACLList Acl::Tree
46 
47 class ExternalACLEntry;
48 typedef RefCount<ExternalACLEntry> ExternalACLEntryPointer;
49 
50 #endif /* SQUID_ACL_FORWARD_H */
51 
52