9#ifndef SQUID_SRC_STORECLIENT_H
10#define SQUID_SRC_STORECLIENT_H
93 void readBody(
const char *buf, ssize_t len);
108#if STORE_CLIENT_LIST_DEBUG
int storeUnregister(store_client *sc, StoreEntry *e, void *data)
void(void *, StoreIOBuffer) STCB
int storeClientIsThisAClient(store_client *sc, void *someClient)
int storePendingNClients(const StoreEntry *e)
void storeClientCopy(store_client *, StoreEntry *, StoreIOBuffer, STCB *, void *)
store_client * storeClientListAdd(StoreEntry *e, void *data)
void error(char *format,...)
#define CBDATA_CLASS(type)
an interface for those capable of configuring an ACLFilledChecklist object
an old-style void* callback parameter
a storeGetPublic*() caller
bool onCollapsingPath() const
whether Squid configuration allows collapsing for this transaction
bool didCollapse
whether startCollapsingOn() was called and returned true
virtual LogTags * loggingTags() const =0
bool mayInitiateCollapsing() const
whether Squid configuration allows us to become a CF initiator
bool startCollapsingOn(const StoreEntry &, const bool doingRevalidation) const
bool sendingHttpHeaders() const
void readHeader(const char *buf, ssize_t len)
void skipHttpHeadersFromDisk()
skips HTTP header bytes previously loaded from disk
void handleBodyFromDisk()
de-serializes HTTP response (partially) read from disk storage
void setDelayId(DelayId delay_id)
std::optional< Store::ParsingBuffer > parsingBuffer
bool startSwapin()
opens the swapin "file" if possible; otherwise, fail()s and returns false
bool answeredOnce() const
void noteNews()
if necessary and possible, informs the Store reader about copy() result
bool parseHttpHeadersFromDisk()
bool moreToRead() const
Whether Store has (or possibly will have) more entry data for us.
void noteSwapInDone(bool error)
int64_t discardableHttpEnd_
the client will not use HTTP response bytes with lower offsets (if any)
StoreIOBuffer lastDiskRead
buffer used for the last storeRead() call
auto discardableHttpEnd() const
the client will not use HTTP response bytes with lower offsets (if any)
void readBody(const char *buf, ssize_t len)
int64_t nextHttpReadOffset() const
The offset of the next stored HTTP response byte wanted by the client.
struct store_client::@122 flags
void copy(StoreEntry *, StoreIOBuffer, STCB *, void *)
bool tryParsingHttpHeaders()
void doCopy(StoreEntry *e)
void noteCopiedBytes(size_t)
void maybeWriteFromDiskToMemory(const StoreIOBuffer &)
bool canReadFromMemory() const
whether at least one byte wanted by the client is in memory
struct store_client::Callback _callback
void finishCallback()
finishes a copy()-STCB sequence by synchronously calling STCB
static void FinishCallback(store_client *)
finishCallback() wrapper; TODO: Add NullaryMemFunT for non-jobs.
uint64_t answers
the total number of finishCallback() calls
StoreIOState::Pointer swapin_sio
void dumpStats(MemBuf *output, int clientNumber) const
CodeContextPointer codeContext
Store client context.
CallbackData cbData
the first STCB callback parameter
STCB * callback_handler
where to deliver the answer
AsyncCall::Pointer notifier
a scheduled asynchronous finishCallback() call (or nil)