]> git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/Data.h
Support for --long-acl-options
[thirdparty/squid.git] / src / acl / Data.h
1 /*
2 * Copyright (C) 1996-2017 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_ACLDATA_H
10 #define SQUID_ACLDATA_H
11
12 #include "acl/Options.h"
13 #include "sbuf/List.h"
14
15 /// Configured ACL parameter(s) (e.g., domain names in dstdomain ACL).
16 template <class M>
17 class ACLData
18 {
19
20 public:
21
22 virtual ~ACLData() {}
23
24 /// \returns the flags supported by these ACL parameters (e.g., "-i")
25 virtual const Acl::ParameterFlags &supportedFlags() const { return Acl::NoFlags(); }
26
27 virtual bool match(M) =0;
28 virtual SBufList dump() const =0;
29 virtual void parse() =0;
30 virtual ACLData *clone() const =0;
31 virtual void prepareForUse() {}
32
33 virtual bool empty() const =0;
34 };
35
36 #endif /* SQUID_ACLDATA_H */
37