]> git.ipfire.org Git - thirdparty/squid.git/blame - src/ipc/Strand.h
fix debug sections
[thirdparty/squid.git] / src / ipc / Strand.h
CommitLineData
10cefb7b 1/*
2 * $Id$
3 *
4 * DEBUG: section 54 Interprocess Communication
5 *
6 */
7
8#ifndef SQUID_IPC_STRAND_H
9#define SQUID_IPC_STRAND_H
10
10cefb7b 11#include "ipc/Port.h"
8822ebee 12#include "mgr/forward.h"
51ea0904 13#include "snmpx/forward.h"
10cefb7b 14
15
16namespace Ipc
17{
18
1bac0258 19class StrandCoord;
10cefb7b 20
ba568924
AR
21/// Receives coordination messages on behalf of its process or thread
22class Strand: public Port
10cefb7b 23{
10cefb7b 24public:
25 Strand();
26
ba568924
AR
27 virtual void start(); // Port (AsyncJob) API
28
29protected:
30 virtual void timedout(); // Port (UsdOp) API
1bac0258 31 virtual void receive(const TypedMsgHdr &message); // Port API
10cefb7b 32
33private:
ba568924 34 void registerSelf(); /// let Coordinator know this strand exists
1bac0258 35 void handleRegistrationResponse(const StrandCoord &strand);
8822ebee
AR
36 void handleCacheMgrRequest(const Mgr::Request& request);
37 void handleCacheMgrResponse(const Mgr::Response& response);
51ea0904
CT
38 void handleSnmpRequest(const Snmp::Request& request);
39 void handleSnmpResponse(const Snmp::Response& response);
10cefb7b 40
41private:
ba568924 42 bool isRegistered; ///< whether Coordinator ACKed registration (unused)
10cefb7b 43
ba568924
AR
44private:
45 Strand(const Strand&); // not implemented
46 Strand& operator =(const Strand&); // not implemented
4ea256cd
AR
47
48 CBDATA_CLASS2(Strand);
10cefb7b 49};
50
51
52}
53
54
55#endif /* SQUID_IPC_STRAND_H */