]> git.ipfire.org Git - thirdparty/squid.git/blame - src/acl/Note.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / acl / Note.h
CommitLineData
bbc27441 1/*
2cd0bda2 2 * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
bbc27441
AJ
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
39baccc8
CT
9#ifndef SQUID_ACLNOTE_H
10#define SQUID_ACLNOTE_H
11
39baccc8 12#include "acl/Strategised.h"
602d9612 13#include "acl/Strategy.h"
39baccc8 14
76ee67ac
CT
15class ACLNoteData;
16class CharacterSet;
39baccc8
CT
17class HttpRequest;
18
19/// \ingroup ACLAPI
76ee67ac 20class ACLNoteStrategy : public ACLStrategy<NotePairs::Entry *>
39baccc8
CT
21{
22
23public:
24 virtual int match (ACLData<MatchType> * &, ACLFilledChecklist *, ACLFlags &);
25 virtual bool requiresRequest() const { return true; }
26
27 static ACLNoteStrategy *Instance();
28 /* Not implemented to prevent copies of the instance. */
29 /* Not private to prevent brain dead g+++ warnings about
30 * private constructors with no friends */
31 ACLNoteStrategy(ACLNoteStrategy const &);
32
33private:
34 static ACLNoteStrategy Instance_;
35 ACLNoteStrategy() { }
36
37 ACLNoteStrategy& operator = (ACLNoteStrategy const &);
76ee67ac 38 bool matchNotes(ACLData<MatchType> *, const NotePairs *, const CharacterSet *) const;
39baccc8
CT
39};
40
41/// \ingroup ACLAPI
42class ACLNote
43{
44
45private:
46 static ACL::Prototype RegistryProtoype;
76ee67ac 47 static ACLStrategised<NotePairs::Entry *> RegistryEntry_;
39baccc8
CT
48};
49
50#endif /* SQUID_ACLNOTE_H */
f53969cc 51