#include "base/AsyncCall.h"
#include "comm/forward.h"
#include "CommCalls.h"
#include "sbuf/forward.h"
Go to the source code of this file.
Namespaces | |
namespace | Comm |
Abstraction layer for TCP, UDP, TLS, UDS and filedescriptor sockets. | |
Functions | |
void | Comm::Read (const Comm::ConnectionPointer &conn, AsyncCall::Pointer &callback) |
bool | Comm::MonitorsRead (int fd) |
whether the FD socket is being monitored for read More... | |
Comm::Flag | Comm::ReadNow (CommIoCbParams ¶ms, SBuf &buf) |
void | Comm::ReadCancel (int fd, AsyncCall::Pointer &callback) |
Cancel the read pending on FD. No action if none pending. More... | |
time_t | Comm::MortalReadTimeout (const time_t startTime, const time_t lifetimeLimit) |
maximum read delay for readers with limited lifetime More... | |
void | comm_read_base (const Comm::ConnectionPointer &conn, char *buf, int len, AsyncCall::Pointer &callback) |
void | comm_read (const Comm::ConnectionPointer &conn, char *buf, int len, AsyncCall::Pointer &callback) |
void | comm_read_cancel (int fd, IOCB *callback, void *data) |
Variables | |
PF | Comm::HandleRead |
callback handler to process an FD which is available for reading More... | |
Function Documentation
◆ comm_read()
|
inline |
Definition at line 59 of file Read.h.
References assert, comm_read_base(), and conn.
Referenced by TunnelStateData::copyRead(), Ipc::Port::doListen(), helperHandleRead(), helperStatefulHandleRead(), idnsInitVCConnected(), idnsReadVC(), idnsReadVCHeader(), Ftp::Server::maybeReadUploadData(), Ftp::Client::maybeReadVirginBody(), Helper::Client::openSessions(), statefulhelper::openSessions(), IdleConnList::push(), WhoisState::readReply(), Ftp::Client::scheduleReadControlReply(), and whoisStart().
◆ comm_read_base()
void comm_read_base | ( | const Comm::ConnectionPointer & | conn, |
char * | buf, | ||
int | size, | ||
AsyncCall::Pointer & | callback | ||
) |
Queue a read. If a buffer is given the callback is scheduled when the read completes, on error, or on file descriptor close.
If no buffer (NULL) is given the callback is scheduled when the socket FD is ready for a read(2)/recv(2).
Definition at line 56 of file Read.cc.
References Comm::IoCallback::active(), assert, COMM_SELECT_READ, COMMIO_FD_READCB, commStopHalfClosedMonitor(), Comm::IoCallback::conn, conn, debugs, fd_table, Comm::HandleRead, Comm::IOCB_READ, Comm::IsConnOpen(), Comm::IoCallback::setCallback(), Comm::SetSelect(), and size.
Referenced by comm_read(), and Comm::Read().
◆ comm_read_cancel()
Cancel a pending read. Assert that we have the right parameters, and that there are no pending read events!
XXX: We do not assert that there are no pending read events and with async calls it becomes even more difficult. The whole interface should be reworked to do callback->cancel() instead of searching for places where the callback may be stored and updating the state of those places.
AHC Don't call the comm handlers?
Definition at line 181 of file Read.cc.
References Comm::IoCallback::active(), assert, Comm::IoCallback::callback, Comm::IoCallback::cancel(), COMM_SELECT_READ, COMMIO_FD_READCB, debugs, RefCount< C >::getRaw(), isOpen(), and Comm::SetSelect().
Referenced by IdleConnList::clearHandlers().