11#ifndef SQUID_SRC_IPC_INQUIRER_H
12#define SQUID_SRC_IPC_INQUIRER_H
45 void start()
override;
48 const char *
status()
const override;
72 Ipc::StrandCoords::const_iterator
pos;
bool doneAll() const override
whether positive goal has been reached
static RequestId::Index LastRequestId
last requestId used
static void RequestTimedOut(void *param)
Ipc::Inquirer::requestTimedOut wrapper.
virtual void handleException(const std::exception &e)
do specific exception handling
CodeContextPointer codeContext
virtual void cleanup()
perform cleanup actions on completion of job
const double timeout
number of seconds to wait for strand response
Ipc::StrandCoords::const_iterator pos
strand we should query now
virtual void inquire()
inquire the next strand
const char * status() const override
internal cleanup; do not call directly
virtual bool aggregate(Response::Pointer aResponse)=0
perform aggregating of responses and returns true if need to continue
void start() override
called by AsyncStart; do not call directly
virtual void sendResponse()=0
send response to client
Request::Pointer request
cache manager request received from client
void callException(const std::exception &e) override
called when the job throws during an async call
static void HandleRemoteAck(const Response &response)
finds and calls the right Inquirer upon strand's response
Ipc::StrandCoords strands
all strands we want to query, in order
void removeTimeoutEvent()
called when we are no longer waiting for the strand to respond
void requestTimedOut()
called when the strand failed to respond (or finish responding) in time
void handleRemoteAck(Response::Pointer response)
called when a strand is done writing its output
A response to Ipc::Request.
std::vector< StrandCoord > StrandCoords
a collection of strand coordinates; the order, if any, is owner-dependent