2 * Copyright (C) 1996-2014 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_ACLDESTINATIONDOMAIN_H
10 #define SQUID_ACLDESTINATIONDOMAIN_H
13 #include "acl/Checklist.h"
15 #include "acl/Strategised.h"
18 class ACLDestinationDomainStrategy
: public ACLStrategy
<char const *>
22 virtual int match (ACLData
<MatchType
> * &, ACLFilledChecklist
*, ACLFlags
&);
23 static ACLDestinationDomainStrategy
*Instance();
24 virtual bool requiresRequest() const {return true;}
27 * Not implemented to prevent copies of the instance.
29 * Not private to prevent brain dead g+++ warnings about
30 * private constructors with no friends
32 ACLDestinationDomainStrategy(ACLDestinationDomainStrategy
const &);
35 static ACLDestinationDomainStrategy Instance_
;
36 ACLDestinationDomainStrategy() {}
38 ACLDestinationDomainStrategy
&operator=(ACLDestinationDomainStrategy
const &);
42 class DestinationDomainLookup
: public ACLChecklist::AsyncState
46 static DestinationDomainLookup
*Instance();
47 virtual void checkForAsync(ACLChecklist
*)const;
50 static DestinationDomainLookup instance_
;
51 static void LookupDone(const char *, const DnsLookupDetails
&, void *);
55 class ACLDestinationDomain
59 static ACL::Prototype LiteralRegistryProtoype
;
60 static ACLStrategised
<char const *> LiteralRegistryEntry_
;
61 static ACL::Prototype RegexRegistryProtoype
;
62 static ACLStrategised
<char const *> RegexRegistryEntry_
;
65 #endif /* SQUID_ACLDESTINATIONDOMAIN_H */