11#ifndef SQUID_SRC_IPC_FORWARDER_H
12#define SQUID_SRC_IPC_FORWARDER_H
47 void start()
override;
69 typedef std::map<RequestId::Index, AsyncCall::Pointer>
RequestsMap;
void removeTimeoutEvent()
called when we are no longer waiting for Coordinator to respond
void start() override
called by AsyncStart; do not call directly
std::map< RequestId::Index, AsyncCall::Pointer > RequestsMap
maps request->id to Forwarder::handleRemoteAck callback
bool doneAll() const override
whether positive goal has been reached
static AsyncCall::Pointer DequeueRequest(RequestId::Index)
returns and forgets the right Forwarder callback for the request
void handleRemoteAck()
called when Coordinator starts processing the request
static RequestId::Index LastRequestId
last requestId used
virtual void handleTimeout()
void requestTimedOut()
called when Coordinator fails to start processing the request [in time]
void callException(const std::exception &e) override
called when the job throws during an async call
static RequestsMap TheRequestsMap
pending Coordinator requests
virtual void handleError()
virtual void handleException(const std::exception &e)
terminate with an error
static void HandleRemoteAck(RequestId)
finds and calls the right Forwarder upon Coordinator's response
const double timeout
response wait timeout in seconds
static void RequestTimedOut(void *param)
Ipc::Forwarder::requestTimedOut wrapper.
CodeContextPointer codeContext