]> git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/HttpRepHeader.h
Merge from trunk rev.13584
[thirdparty/squid.git] / src / acl / HttpRepHeader.h
1 /*
2 * Copyright (C) 1996-2014 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_ACLHTTPREPHEADER_H
10 #define SQUID_ACLHTTPREPHEADER_H
11
12 #include "acl/Strategised.h"
13 #include "acl/Strategy.h"
14 #include "HttpHeader.h"
15
16 /// \ingroup ACLAPI
17 class ACLHTTPRepHeaderStrategy : public ACLStrategy<HttpHeader*>
18 {
19
20 public:
21 virtual int match (ACLData<MatchType> * &, ACLFilledChecklist *, ACLFlags &);
22 virtual bool requiresReply() const { return true; }
23
24 static ACLHTTPRepHeaderStrategy *Instance();
25 /**
26 * Not implemented to prevent copies of the instance.
27 \par
28 * Not private to prevent brain dead g+++ warnings about
29 * private constructors with no friends
30 */
31 ACLHTTPRepHeaderStrategy(ACLHTTPRepHeaderStrategy const &);
32
33 private:
34 static ACLHTTPRepHeaderStrategy Instance_;
35 ACLHTTPRepHeaderStrategy() { }
36
37 ACLHTTPRepHeaderStrategy&operator = (ACLHTTPRepHeaderStrategy const &);
38 };
39
40 /// \ingroup ACLAPI
41 class ACLHTTPRepHeader
42 {
43
44 private:
45 static ACL::Prototype RegistryProtoype;
46 static ACLStrategised<HttpHeader*> RegistryEntry_;
47 };
48
49 #endif /* SQUID_ACLHTTPREPHEADER_H */