]> git.ipfire.org Git - thirdparty/squid.git/blame - src/CompositePoolNode.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / CompositePoolNode.h
CommitLineData
b67e2c8c 1/*
4ac4a490 2 * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
b67e2c8c 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.
b67e2c8c 7 */
bbc27441
AJ
8
9/* DEBUG: section 77 Delay Pools */
10
b67e2c8c 11#ifndef COMPOSITEPOOLNODE_H
12#define COMPOSITEPOOLNODE_H
13
9a0a18de 14#if USE_DELAY_POOLS
a33a428a 15#include "auth/UserRequest.h"
a46d2c0e 16#include "CommRead.h"
582c2af2
FC
17#include "DelayIdComposite.h"
18#include "DelayPools.h"
96d89ea0 19#include "ip/Address.h"
582c2af2 20#include "SquidString.h"
b67e2c8c 21
22class StoreEntry;
62e76326 23
63be0a78 24/// \ingroup DelayPoolsAPI
62e76326 25class CompositePoolNode : public RefCountable, public Updateable
26{
27
b67e2c8c 28public:
29 typedef RefCount<CompositePoolNode> Pointer;
30 void *operator new(size_t);
31 void operator delete (void *);
26ac0430 32 virtual ~CompositePoolNode() {}
62e76326 33
b67e2c8c 34 virtual void stats(StoreEntry * sentry) =0;
35 virtual void dump(StoreEntry *entry) const =0;
36 virtual void update(int incr) =0;
37 virtual void parse() = 0;
62e76326 38
1e5562e3 39 class CompositeSelectionDetails;
40 virtual DelayIdComposite::Pointer id(CompositeSelectionDetails &) = 0;
a46d2c0e 41 void delayRead(DeferredRead const &);
42
63be0a78 43 /// \ingroup DelayPoolsAPI
1e5562e3 44 class CompositeSelectionDetails
45 {
46
47 public:
48 CompositeSelectionDetails() {}
49
b7ac5457 50 Ip::Address src_addr;
79fc6915 51#if USE_AUTH
c7baff40 52 Auth::UserRequest::Pointer user;
79fc6915 53#endif
30abd221 54 String tag;
1e5562e3 55 };
56
a46d2c0e 57protected:
58 void kickReads();
59 DeferredReadManager deferredReads;
b67e2c8c 60};
62e76326 61
9a0a18de 62#endif /* USE_DELAY_POOLS */
b67e2c8c 63#endif /* COMPOSITEPOOLNODE_H */
f53969cc 64