CollapsedForwarding.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2018 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_COLLAPSED_FORWARDING_H
12 #define SQUID_COLLAPSED_FORWARDING_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 
45 private:
47  static std::unique_ptr<Queue> queue;
48 };
49 
50 #endif /* SQUID_COLLAPSED_FORWARDING_H */
51 
static void Notify(const int workerId)
kick worker with empty IPC queue
static void Broadcast(const StoreEntry &e, const bool includingThisWorker=false)
notify other workers about changes in entry state (e.g., new data)
static void HandleNotification(const Ipc::TypedMsgHdr &msg)
handle queue push notifications from worker or disker
Sends and handles collapsed forwarding notifications.
static void HandleNewData(const char *const when)
handle new data messages in IPC queue
signed_int32_t sfileno
Definition: forward.h:22
struct msghdr with a known type, fixed-size I/O and control buffers
Definition: TypedMsgHdr.h:31
static void Init()
open shared memory segment
static std::unique_ptr< Queue > queue
IPC queue.

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors