Strand.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2017 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 54 Interprocess Communication */
10 
11 #ifndef SQUID_IPC_STRAND_H
12 #define SQUID_IPC_STRAND_H
13 
14 #include "ipc/forward.h"
15 #include "ipc/Port.h"
16 #include "mgr/forward.h"
17 #if SQUID_SNMP
18 #include "snmp/forward.h"
19 #endif
20 
21 namespace Ipc
22 {
23 
24 class StrandCoord;
25 
27 class Strand: public Port
28 {
30 
31 public:
32  Strand();
33 
34  virtual void start(); // Port (AsyncJob) API
35 
36 protected:
37  virtual void timedout(); // Port (UsdOp) API
38  virtual void receive(const TypedMsgHdr &message); // Port API
39 
40 private:
41  void registerSelf();
44  void handleCacheMgrResponse(const Mgr::Response& response);
45 #if SQUID_SNMP
46  void handleSnmpRequest(const Snmp::Request& request);
47  void handleSnmpResponse(const Snmp::Response& response);
48 #endif
49 
50 private:
51  bool isRegistered;
52 
53 private:
54  Strand(const Strand&); // not implemented
55  Strand& operator =(const Strand&); // not implemented
56 };
57 
58 }
59 
60 #endif /* SQUID_IPC_STRAND_H */
61 
strand registration with Coordinator (also used as an ACK)
Definition: StrandCoord.h:36
cache manager request
Definition: Request.h:22
Receives coordination messages on behalf of its process or thread.
Definition: Strand.h:27
void handleSnmpResponse(const Snmp::Response &response)
Definition: Strand.cc:154
Strand & operator=(const Strand &)
bool isRegistered
whether Coordinator ACKed registration (unused)
Definition: Strand.h:51
struct _request * request(char *urlin)
Definition: tcp-banger2.c:291
void handleCacheMgrResponse(const Mgr::Response &response)
Definition: Strand.cc:142
void handleSnmpRequest(const Snmp::Request &request)
Definition: Strand.cc:148
void registerSelf()
Definition: Strand.cc:51
SNMP request.
Definition: Request.h:24
virtual void receive(const TypedMsgHdr &message)
handle IPC message just read
Definition: Strand.cc:63
Waits for and receives incoming IPC messages; kids handle the messages.
Definition: Port.h:21
struct msghdr with a known type, fixed-size I/O and control buffers
Definition: TypedMsgHdr.h:31
CBDATA_CLASS(Strand)
virtual void timedout()
called after setTimeout() if timed out
Definition: Strand.cc:161
void handleCacheMgrRequest(const Mgr::Request &request)
Definition: Strand.cc:135
void handleRegistrationResponse(const HereIamMessage &msg)
let Coordinator know this strand exists
Definition: Strand.cc:122
virtual void start()
called by AsyncStart; do not call directly
Definition: Strand.cc:45

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors