2 * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
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.
9 /* DEBUG: section 77 Delay Pools */
11 #ifndef COMPOSITEPOOLNODE_H
12 #define COMPOSITEPOOLNODE_H
15 #include "auth/UserRequest.h"
17 #include "DelayIdComposite.h"
18 #include "DelayPools.h"
19 #include "ip/Address.h"
20 #include "SquidString.h"
24 /// \ingroup DelayPoolsAPI
25 class CompositePoolNode
: public RefCountable
, public Updateable
27 MEMPROXY_CLASS(CompositePoolNode
);
30 typedef RefCount
<CompositePoolNode
> Pointer
;
31 virtual ~CompositePoolNode() {}
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;
38 class CompositeSelectionDetails
;
39 virtual DelayIdComposite::Pointer
id(CompositeSelectionDetails
&) = 0;
40 void delayRead(DeferredRead
const &);
42 /// \ingroup DelayPoolsAPI
43 class CompositeSelectionDetails
47 CompositeSelectionDetails() {}
51 Auth::UserRequest::Pointer user
;
58 DeferredReadManager deferredReads
;
61 #endif /* USE_DELAY_POOLS */
62 #endif /* COMPOSITEPOOLNODE_H */