]> git.ipfire.org Git - thirdparty/squid.git/blame - src/acl/Data.h
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / acl / Data.h
CommitLineData
225b7b10 1/*
5b74111a 2 * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
225b7b10 3 *
bbc27441
AJ
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.
225b7b10 7 */
bbc27441 8
225b7b10 9#ifndef SQUID_ACLDATA_H
10#define SQUID_ACLDATA_H
11
4eac3407 12#include "acl/Options.h"
58d8264f 13#include "sbuf/List.h"
e1f7507e 14
4eac3407 15/// Configured ACL parameter(s) (e.g., domain names in dstdomain ACL).
5dee515e 16template <class M>
62e76326 17class ACLData
18{
19
20public:
225b7b10 21
22 virtual ~ACLData() {}
62e76326 23
4eac3407
CT
24 /// \returns the flags supported by these ACL parameters (e.g., "-i")
25 virtual const Acl::ParameterFlags &supportedFlags() const { return Acl::NoFlags(); }
26
5dee515e 27 virtual bool match(M) =0;
4f8ca96e 28 virtual SBufList dump() const =0;
225b7b10 29 virtual void parse() =0;
30 virtual ACLData *clone() const =0;
65092baf 31 virtual void prepareForUse() {}
b0dd28ba 32
65092baf 33 virtual bool empty() const =0;
34};
225b7b10 35
36#endif /* SQUID_ACLDATA_H */
f53969cc 37