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_ACLREGEXDATA_H
10 #define SQUID_ACLREGEXDATA_H
11 
12 #include "acl/Data.h"
13 
14 #include <list>
15 
16 class RegexPattern;
17 
18 class ACLRegexData : public ACLData<char const *>
19 {
20     MEMPROXY_CLASS(ACLRegexData);
21 
22 public:
23     virtual ~ACLRegexData();
24     virtual bool match(char const *user);
25     virtual SBufList dump() const;
26     virtual void parse();
27     virtual const Acl::ParameterFlags &supportedFlags() const;
28     virtual bool empty() const;
29     virtual ACLData<char const *> *clone() const;
30 
31 private:
32     std::list<RegexPattern> data;
33 };
34 
35 #endif /* SQUID_ACLREGEXDATA_H */
36 
37