StoreToCommWriter.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 /* DEBUG: section 16 Cache Manager API */
10 
11 #ifndef SQUID_SRC_MGR_STORETOCOMMWRITER_H
12 #define SQUID_SRC_MGR_STORETOCOMMWRITER_H
13 
14 #include "base/AsyncJob.h"
15 #include "comm/forward.h"
16 #include "http/forward.h"
17 #include "mgr/Action.h"
18 #include "StoreIOBuffer.h"
19 
20 class store_client;
21 class CommIoCbParams;
22 class CommCloseCbParams;
23 
24 namespace Mgr
25 {
26 
30 {
32 
33 public:
35  ~StoreToCommWriter() override;
36 
37 protected:
38  /* AsyncJob API */
39  void start() override;
40  void swanSong() override;
41  bool doneAll() const override;
42 
44  void scheduleStoreCopy();
46  void noteStoreCopied(StoreIOBuffer ioBuf);
47  static void NoteStoreCopied(void* data, StoreIOBuffer ioBuf);
49  static void HandleStoreAbort(StoreToCommWriter *param);
50 
52  void scheduleCommWrite(const StoreIOBuffer& ioBuf);
54  void noteCommWrote(const CommIoCbParams& params);
56  void noteCommClosed(const CommCloseCbParams& params);
57 
59  void close();
60 
61 protected:
63 
66  int64_t writeOffset;
67 
70 };
71 
72 } // namespace Mgr
73 
74 #endif /* SQUID_SRC_MGR_STORETOCOMMWRITER_H */
75 
char buffer[HTTP_REQBUF_SZ]
action results; Store fills, Comm writes
Comm::ConnectionPointer clientConnection
HTTP client descriptor.
static void NoteStoreCopied(void *data, StoreIOBuffer ioBuf)
StoreToCommWriter(const Comm::ConnectionPointer &conn, StoreEntry *anEntry)
AsyncCall::Pointer closer
comm_close handler
void noteCommWrote(const CommIoCbParams &params)
called by Comm after the action results are written
void noteStoreCopied(StoreIOBuffer ioBuf)
receive some action results from the store
void close()
closes the local connection to the HTTP client, if any
void scheduleCommWrite(const StoreIOBuffer &ioBuf)
tell Comm to write action results
StoreEntry * entry
store entry with the cache manager response
bool doneAll() const override
whether positive goal has been reached
int64_t writeOffset
number of bytes written to the client
store_client * sc
our registration with the store
void start() override
called by AsyncStart; do not call directly
void noteCommClosed(const CommCloseCbParams &params)
called by Comm if the client socket got closed
static void HandleStoreAbort(StoreToCommWriter *param)
called by Store if the entry is no longer usable
void scheduleStoreCopy()
request more action results from the store
#define HTTP_REQBUF_SZ
Definition: forward.h:14
Cache Manager API.
Definition: Action.h:20

 

Introduction

Documentation

Support

Miscellaneous