]> git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/Data.h
Source Format Enforcement (#1234)
[thirdparty/squid.git] / src / acl / Data.h
1 /*
2 * Copyright (C) 1996-2023 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 ACLData() = default;
22 ACLData(ACLData<M> &&) = delete; // no copying of any kind
23 virtual ~ACLData() {}
24
25 /// supported ACL "line" options (e.g., "-i")
26 virtual const Acl::Options &lineOptions() { return Acl::NoOptions(); }
27
28 virtual bool match(M) =0;
29 virtual SBufList dump() const =0;
30 virtual void parse() =0;
31 virtual void prepareForUse() {}
32
33 virtual bool empty() const =0;
34 };
35
36 #endif /* SQUID_ACLDATA_H */
37