CollapsedForwarding.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 17 Request Forwarding */
10 
11 #ifndef SQUID_SRC_COLLAPSEDFORWARDING_H
12 #define SQUID_SRC_COLLAPSEDFORWARDING_H
13 
14 #include "ipc/forward.h"
15 #include "ipc/Queue.h"
16 #include "store/forward.h"
17 
18 #include <memory>
19 
20 class StoreEntry;
21 
24 {
25 public:
27  static void Init();
28 
30  static void Broadcast(const StoreEntry &e, const bool includingThisWorker = false);
31 
34  static void Broadcast(const sfileno index, const bool includingThisWorker);
35 
37  static void Notify(const int workerId);
38 
40  static void HandleNewData(const char *const when);
41 
43  static void HandleNotification(const Ipc::TypedMsgHdr &msg);
44 
46  static void StatQueue(std::ostream &);
47 
48 private:
49  static void HandleNewDataAtStart();
50 
52  static std::unique_ptr<Queue> queue;
53 };
54 
55 #endif /* SQUID_SRC_COLLAPSEDFORWARDING_H */
56 
static void HandleNewData(const char *const when)
handle new data messages in IPC queue
static void HandleNewDataAtStart()
static std::unique_ptr< Queue > queue
IPC queue.
static void HandleNotification(const Ipc::TypedMsgHdr &msg)
handle queue push notifications from worker or disker
Sends and handles collapsed forwarding notifications.
static void StatQueue(std::ostream &)
prints IPC message queue state; suitable for cache manager reports
signed_int32_t sfileno
Definition: forward.h:22
struct msghdr with a known type, fixed-size I/O and control buffers
Definition: TypedMsgHdr.h:34
static void Notify(const int workerId)
kick worker with empty IPC queue
static void Init()
open shared memory segment
static void Broadcast(const StoreEntry &e, const bool includingThisWorker=false)
notify other workers about changes in entry state (e.g., new data)

 

Introduction

Documentation

Support

Miscellaneous