2 * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
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.
9 #ifndef SQUID_ACLSERVERNAME_H
10 #define SQUID_ACLSERVERNAME_H
13 #include "acl/Checklist.h"
15 #include "acl/DomainData.h"
16 #include "acl/Strategised.h"
18 class ACLServerNameData
: public ACLDomainData
{
19 MEMPROXY_CLASS(ACLServerNameData
);
21 ACLServerNameData() : ACLDomainData() {}
22 virtual bool match(const char *);
23 virtual ACLData
<char const *> *clone() const;
26 class ACLServerNameStrategy
: public ACLStrategy
<char const *>
30 virtual int match (ACLData
<MatchType
> * &, ACLFilledChecklist
*, ACLFlags
&);
31 static ACLServerNameStrategy
*Instance();
32 virtual bool requiresRequest() const {return true;}
35 * Not implemented to prevent copies of the instance.
37 * Not private to prevent brain dead g+++ warnings about
38 * private constructors with no friends
40 ACLServerNameStrategy(ACLServerNameStrategy
const &);
43 static ACLServerNameStrategy Instance_
;
44 ACLServerNameStrategy() {}
46 ACLServerNameStrategy
&operator=(ACLServerNameStrategy
const &);
53 static ACL::Prototype LiteralRegistryProtoype
;
54 static ACLStrategised
<char const *> LiteralRegistryEntry_
;
55 static ACL::Prototype RegexRegistryProtoype
;
56 static ACLStrategised
<char const *> RegexRegistryEntry_
;
59 #endif /* SQUID_ACLSERVERNAME_H */