]>
Commit | Line | Data |
---|---|---|
b67e2c8c | 1 | /* |
5b74111a | 2 | * Copyright (C) 1996-2018 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 | |
22 | class StoreEntry; | |
62e76326 | 23 | |
63be0a78 | 24 | /// \ingroup DelayPoolsAPI |
62e76326 | 25 | class CompositePoolNode : public RefCountable, public Updateable |
26 | { | |
b58d2a22 | 27 | MEMPROXY_CLASS(CompositePoolNode); |
62e76326 | 28 | |
b67e2c8c | 29 | public: |
30 | typedef RefCount<CompositePoolNode> Pointer; | |
26ac0430 | 31 | virtual ~CompositePoolNode() {} |
62e76326 | 32 | |
b67e2c8c | 33 | virtual void stats(StoreEntry * sentry) =0; |
34 | virtual void dump(StoreEntry *entry) const =0; | |
35 | virtual void update(int incr) =0; | |
36 | virtual void parse() = 0; | |
62e76326 | 37 | |
1e5562e3 | 38 | class CompositeSelectionDetails; |
39 | virtual DelayIdComposite::Pointer id(CompositeSelectionDetails &) = 0; | |
a46d2c0e | 40 | void delayRead(DeferredRead const &); |
41 | ||
63be0a78 | 42 | /// \ingroup DelayPoolsAPI |
1e5562e3 | 43 | class CompositeSelectionDetails |
44 | { | |
45 | ||
46 | public: | |
47 | CompositeSelectionDetails() {} | |
48 | ||
b7ac5457 | 49 | Ip::Address src_addr; |
79fc6915 | 50 | #if USE_AUTH |
c7baff40 | 51 | Auth::UserRequest::Pointer user; |
79fc6915 | 52 | #endif |
30abd221 | 53 | String tag; |
1e5562e3 | 54 | }; |
55 | ||
a46d2c0e | 56 | protected: |
57 | void kickReads(); | |
58 | DeferredReadManager deferredReads; | |
b67e2c8c | 59 | }; |
62e76326 | 60 | |
9a0a18de | 61 | #endif /* USE_DELAY_POOLS */ |
b67e2c8c | 62 | #endif /* COMPOSITEPOOLNODE_H */ |
f53969cc | 63 |