]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/comm/Read.h
2 * Copyright (C) 1996-2015 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 #ifndef _SQUID_COMM_READ_H
10 #define _SQUID_COMM_READ_H
12 #include "base/AsyncCall.h"
13 #include "comm/forward.h"
14 #include "CommCalls.h"
22 * Start monitoring for read.
24 * callback is scheduled when the read is possible,
25 * or on file descriptor close.
27 void Read(const Comm::ConnectionPointer
&conn
, AsyncCall::Pointer
&callback
);
29 /// whether the FD socket is being monitored for read
30 bool MonitorsRead(int fd
);
33 * Perform a read(2) on a connection immediately.
35 * The returned flag is also placed in params.flag.
37 * \retval Comm::OK data has been read and placed in buf, amount in params.size
38 * \retval Comm::COMM_ERROR an error occured, the code is placed in params.xerrno
39 * \retval Comm::INPROGRESS unable to read at this time, or a minor error occured
40 * \retval Comm::ENDFILE 0-byte read has occured.
41 * Usually indicates the remote end has disconnected.
43 Comm::Flag
ReadNow(CommIoCbParams
¶ms
, SBuf
&buf
);
45 /// Cancel the read pending on FD. No action if none pending.
46 void ReadCancel(int fd
, AsyncCall::Pointer
&callback
);
48 /// callback handler to process an FD which is available for reading
53 // Legacy API to be removed
54 void comm_read_base(const Comm::ConnectionPointer
&conn
, char *buf
, int len
, AsyncCall::Pointer
&callback
);
55 inline void comm_read(const Comm::ConnectionPointer
&conn
, char *buf
, int len
, AsyncCall::Pointer
&callback
)
58 comm_read_base(conn
, buf
, len
, callback
);
60 void comm_read_cancel(int fd
, IOCB
*callback
, void *data
);
62 #endif /* _SQUID_COMM_READ_H */