]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/ipc/Strand.h
2 * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
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.
9 /* DEBUG: section 54 Interprocess Communication */
11 #ifndef SQUID_IPC_STRAND_H
12 #define SQUID_IPC_STRAND_H
14 #include "ipc/forward.h"
16 #include "mgr/forward.h"
18 #include "snmp/forward.h"
26 /// Receives coordination messages on behalf of its process or thread
27 class Strand
: public Port
34 virtual void start(); // Port (AsyncJob) API
37 virtual void timedout(); // Port (UsdOp) API
38 virtual void receive(const TypedMsgHdr
&message
); // Port API
41 void registerSelf(); /// let Coordinator know this strand exists
42 void handleRegistrationResponse(const StrandMessage
&);
43 void handleCacheMgrRequest(const Mgr::Request
& request
);
44 void handleCacheMgrResponse(const Mgr::Response
& response
);
46 void handleSnmpRequest(const Snmp::Request
& request
);
47 void handleSnmpResponse(const Snmp::Response
& response
);
51 bool isRegistered
; ///< whether Coordinator ACKed registration (unused)
54 Strand(const Strand
&); // not implemented
55 Strand
& operator =(const Strand
&); // not implemented
60 #endif /* SQUID_IPC_STRAND_H */