IpcIoFile.h
Go to the documentation of this file.
generally useful configuration options supported by some children
Definition: DiskFile.h:28
Definition: DiskFile.h:22
Definition: IpcIoFile.h:67
static void DiskerHandleMoreRequests(void *)
Definition: IpcIoFile.cc:826
void create(int flags, mode_t mode, RefCount< IORequestor > callback) override
Definition: IpcIoFile.cc:198
void scheduleTimeoutCheck()
prepare to check for timeouts in a little while
Definition: IpcIoFile.cc:630
static bool DiskerHandleMoreRequestsScheduled
whether we are waiting for an event to handle still queued I/O requests
Definition: IpcIoFile.h:164
bool canWait() const
whether we think there is enough time to complete the I/O
Definition: IpcIoFile.cc:421
static void CheckTimeouts(void *const param)
IpcIoFile::checkTimeouts wrapper.
Definition: IpcIoFile.cc:576
void trackPendingRequest(const unsigned int id, IpcIoPendingRequest *const pending)
track a new pending request
Definition: IpcIoFile.cc:345
void open(int flags, mode_t mode, RefCount< IORequestor > callback) override
Definition: IpcIoFile.cc:127
static void HandleOpenResponse(const Ipc::StrandMessage &)
handle open response from coordinator
Definition: IpcIoFile.cc:456
void writeCompleted(WriteRequest *writeRequest, const IpcIoMsg *const response)
Definition: IpcIoFile.cc:303
void configure(const Config &cfg) override
notes supported configuration options; kids must call this first
Definition: IpcIoFile.cc:120
CBDATA_CLASS(IpcIoFile)
static void DiskerHandleRequest(const int workerId, IpcIoMsg &ipcIo)
called when disker receives an I/O request
Definition: IpcIoFile.cc:939
void readCompleted(ReadRequest *readRequest, IpcIoMsg *const response)
Definition: IpcIoFile.cc:254
void push(IpcIoPendingRequest *const pending)
push an I/O request to disker
Definition: IpcIoFile.cc:356
static void StatQueue(std::ostream &)
prints IPC message queue state; suitable for cache manager reports
Definition: IpcIoFile.cc:548
IpcIoPendingRequest * dequeueRequest(const unsigned int requestId)
returns and forgets the right IpcIoFile pending request
Definition: IpcIoFile.cc:644
static void HandleResponses(const char *const when)
Definition: IpcIoFile.cc:474
std::map< unsigned int, IpcIoPendingRequest * > RequestMap
maps requestId to the handleResponse callback
Definition: IpcIoFile.h:144
static void HandleNotification(const Ipc::TypedMsgHdr &msg)
handle queue push notifications from worker or disker
Definition: IpcIoFile.cc:524
void stat(std::ostream &)
prints message parameters; suitable for cache manager reports
Definition: IpcIoFile.cc:689
keeps original I/O request parameters while disker is handling the request
Definition: IpcIoFile.h:169
IpcIoPendingRequest & operator=(const IpcIoPendingRequest &d)
IpcIoPendingRequest(const IpcIoPendingRequest &d)
IpcIoPendingRequest(const IpcIoFile::Pointer &aFile)
Definition: IpcIoFile.cc:706
void completeIo(IpcIoMsg *const response)
called when response is received and, with a nil response, on timeouts
Definition: IpcIoFile.cc:715
Definition: Queue.h:243
struct msghdr with a known type, fixed-size I/O and control buffers
Definition: TypedMsgHdr.h:35
Definition: ReadRequest.h:16
Definition: RefCount.h:28
Definition: SquidString.h:26
Definition: WriteRequest.h:17
Definition: IpcIoFile.h:30
Definition: IpcIoFile.h:24