9#ifndef SQUID_SRC_CLIENT_SIDE_REPLY_H
10#define SQUID_SRC_CLIENT_SIDE_REPLY_H
void ACLCB(Acl::Answer, void *)
ACL checklist callback.
#define RefCountable
The locking interface for use on Reference-Counted classes.
void(void *, StoreIOBuffer) STCB
#define CBDATA_CLASS(type)
a storeGetPublic*() caller
char const * termedBuf() const
void handleIMSReply(StoreIOBuffer result)
clientStreamNode * ourNode
void sendNotModifiedOrPreconditionFailedError()
void setReplyToReply(HttpReply *reply)
creates a store entry for the reply and appends error reply to it
static ACLCB ProcessReplyAccessResult
bool alwaysAllowResponse(Http::StatusCode sline) const
static STCB HandleIMSReply
void sendPreconditionFailedError()
send 412 (Precondition Failed) to client
void triggerInitialStoreRead(STCB=SendMoreData)
void cacheHit(StoreIOBuffer result)
bool matchesStreamBodyBuffer(const StoreIOBuffer &) const
void sendStreamError(StoreIOBuffer const &result)
@ crInitiator
we initiated collapsed revalidation request
@ crNone
collapsed revalidation is not allowed for this context
@ crSlave
we collapsed on the existing revalidation request
void pushStreamData(const StoreIOBuffer &)
void sendClientUpstreamResponse(const StoreIOBuffer &upstreamResponse)
Http::StatusCode purgeStatus
void startError(ErrorState *err)
void identifyFoundObject(StoreEntry *entry, const char *detail)
void sendNotModified()
send 304 (Not Modified) to client
void createStoreEntry(const HttpRequestMethod &m, RequestFlags flags)
void setReplyToStoreEntry(StoreEntry *e, const char *reason)
replaces current response store entry with the given one
bool errorInStream(const StoreIOBuffer &result) const
void processOnlyIfCachedMiss()
bool blockedHit() const
whether squid.conf send_hit prevents us from serving this hit
static decltype(::storeClientCopy) storeClientCopy
int storeNotOKTransferDone() const
void removeClientStoreReference(store_client **scp, ClientHttpRequest *http)
friend CSR clientGetMoreData
~clientReplyContext() override
struct clientReplyContext::Flags flags
void processReplyAccessResult(const Acl::Answer &accessAllowed)
const char * firstStoreLookup_
void sendBodyTooLargeError()
CollapsedRevalidation collapsedRevalidation
void sendClientOldEntry()
char tempbuf[HTTP_REQBUF_SZ]
const char * storeLookupString(bool found) const
bool purgeEntry(StoreEntry &, const Http::MethodType, const char *descriptionPrefix="")
void requestMoreBodyFromStore()
clientStreamNode * next() const
void noteStreamBufferredBytes(const StoreIOBuffer &)
void sendMoreData(StoreIOBuffer result)
StoreIOBuffer lastStreamBufferedBytes
HTTP response body bytes stored in our Client Stream buffer (if any)
clientStream_status_t replyStatus()
void removeStoreReference(store_client **scp, StoreEntry **ep)
LogTags * loggingTags() const override
const char * storeId() const
bool processConditional()
process conditional request from client
int storeOKTransferDone() const
void processReplyAccess()
clientStreamNode * getNextNode() const
void fillChecklist(ACLFilledChecklist &) const override
configure the given checklist (to reflect the current transaction state)
void identifyStoreObject()
void setReplyToError(err_type, Http::StatusCode, char const *, const ConnStateData *, HttpRequest *, const char *, Auth::UserRequest::Pointer)
builds error using clientBuildError() and calls setReplyToError() below
void purgeDoPurge()
releases both cached GET and HEAD entries
void detailStoreLookup(const char *detail)
remembers the very first Store lookup classification, ignoring the rest
void CSR(clientStreamNode *, ClientHttpRequest *)
client stream read
void purgeEntriesByUrl(HttpRequest *, const char *)
enum Http::_method_t MethodType
unsigned complete
we have read all we can from upstream
unsigned storelogiccomplete