/*
- * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
CBDATA_CHILD(HeaderUpdater);
public:
+ class IoCbParams {
+ public:
+ IoCbParams(const char *aBuf, ssize_t aSize) : buf(aBuf), size(aSize) {}
+ const char *buf;
+ ssize_t size;
+ };
HeaderUpdater(const Rock::SwapDir::Pointer &aStore, const Ipc::StoreMapUpdate &update);
- virtual ~HeaderUpdater() override = default;
+ ~HeaderUpdater() override = default;
protected:
/* AsyncJob API */
- virtual void start() override;
- virtual bool doneAll() const override;
- virtual void swanSong() override;
+ void start() override;
+ bool doneAll() const override;
+ void swanSong() override;
private:
static StoreIOState::STRCB NoteRead;
void startReading();
void stopReading(const char *why);
void readMore(const char *why);
- void noteRead(ssize_t result);
+ void noteRead(const IoCbParams result);
void noteDoneReading(int errflag);
void parseReadBytes();
SBuf exchangeBuffer; ///< bytes read but not yet discarded or written
uint64_t bytesRead; ///< total entry bytes read from Store so far
- int staleSwapHeaderSize; ///< stored size of the stale entry metadata
+ size_t staleSwapHeaderSize; ///< stored size of the stale entry metadata
SlotId staleSplicingPointNext; ///< non-updatable old HTTP body suffix start
};
+inline
+std::ostream &operator <<(std::ostream &os, const HeaderUpdater::IoCbParams ¶ms)
+{
+ os << static_cast<const void *>(params.buf) << "," << params.size;
+ return os;
+}
+
} // namespace Rock
#endif /* SQUID_FS_ROCK_HEADER_UPDATER_H */