]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/CommRead.h
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 05 Comm */
14 #include "base/CbDataList.h"
16 #include "comm/forward.h"
17 #include "CommCalls.h"
24 CommRead(const Comm::ConnectionPointer
&c
, char *buf
, int len
, AsyncCall::Pointer
&callback
);
25 Comm::ConnectionPointer conn
;
28 AsyncCall::Pointer callback
;
35 typedef void DeferrableRead(void *context
, CommRead
const &);
37 DeferredRead (DeferrableRead
*, void *, CommRead
const &);
39 DeferrableRead
*theReader
;
43 AsyncCall::Pointer closer
; ///< internal close handler used by Comm
48 class DeferredReadManager
52 ~DeferredReadManager();
53 void delayRead(DeferredRead
const &);
54 void kickReads(int const count
);
57 static CLCB CloseHandler
;
58 static DeferredRead
popHead(CbDataListContainer
<DeferredRead
> &deferredReads
);
59 void kickARead(DeferredRead
const &);
61 CbDataListContainer
<DeferredRead
> deferredReads
;
64 #endif /* COMMREAD_H */