]>
Commit | Line | Data |
---|---|---|
3841dd46 | 1 | /* |
bde978a6 | 2 | * Copyright (C) 1996-2015 The Squid Software Foundation and contributors |
3841dd46 | 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. | |
3841dd46 | 7 | */ |
8 | ||
945c70bb AR |
9 | #ifndef SQUID_ACLDESTINATIONDOMAIN_H |
10 | #define SQUID_ACLDESTINATIONDOMAIN_H | |
63be0a78 | 11 | |
127dce76 | 12 | #include "acl/Acl.h" |
127dce76 | 13 | #include "acl/Checklist.h" |
602d9612 | 14 | #include "acl/Data.h" |
127dce76 | 15 | #include "acl/Strategised.h" |
7660b45d | 16 | |
63be0a78 | 17 | /// \ingroup ACLAPI |
7660b45d | 18 | class ACLDestinationDomainStrategy : public ACLStrategy<char const *> |
19 | { | |
20 | ||
21 | public: | |
33810b1d | 22 | virtual int match (ACLData<MatchType> * &, ACLFilledChecklist *, ACLFlags &); |
7660b45d | 23 | static ACLDestinationDomainStrategy *Instance(); |
51734f15 | 24 | virtual bool requiresRequest() const {return true;} |
26ac0430 | 25 | |
63be0a78 | 26 | /** |
27 | * Not implemented to prevent copies of the instance. | |
28 | \par | |
29 | * Not private to prevent brain dead g+++ warnings about | |
30 | * private constructors with no friends | |
31 | */ | |
7660b45d | 32 | ACLDestinationDomainStrategy(ACLDestinationDomainStrategy const &); |
33 | ||
34 | private: | |
35 | static ACLDestinationDomainStrategy Instance_; | |
26ac0430 | 36 | ACLDestinationDomainStrategy() {} |
7660b45d | 37 | |
38 | ACLDestinationDomainStrategy&operator=(ACLDestinationDomainStrategy const &); | |
39 | }; | |
3841dd46 | 40 | |
63be0a78 | 41 | /// \ingroup ACLAPI |
62e76326 | 42 | class DestinationDomainLookup : public ACLChecklist::AsyncState |
43 | { | |
44 | ||
45 | public: | |
3841dd46 | 46 | static DestinationDomainLookup *Instance(); |
47 | virtual void checkForAsync(ACLChecklist *)const; | |
62e76326 | 48 | |
49 | private: | |
3841dd46 | 50 | static DestinationDomainLookup instance_; |
4a3b98d7 | 51 | static void LookupDone(const char *, const Dns::LookupDetails &, void *); |
3841dd46 | 52 | }; |
53 | ||
63be0a78 | 54 | /// \ingroup ACLAPI |
7660b45d | 55 | class ACLDestinationDomain |
62e76326 | 56 | { |
57 | ||
62e76326 | 58 | private: |
7660b45d | 59 | static ACL::Prototype LiteralRegistryProtoype; |
60 | static ACLStrategised<char const *> LiteralRegistryEntry_; | |
61 | static ACL::Prototype RegexRegistryProtoype; | |
62 | static ACLStrategised<char const *> RegexRegistryEntry_; | |
3841dd46 | 63 | }; |
64 | ||
945c70bb | 65 | #endif /* SQUID_ACLDESTINATIONDOMAIN_H */ |
f53969cc | 66 |