]>
Commit | Line | Data |
---|---|---|
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 | ||
16 | namespace Ipc | |
17 | { | |
18 | ||
1bac0258 | 19 | class StrandCoord; |
10cefb7b | 20 | |
ba568924 AR |
21 | /// Receives coordination messages on behalf of its process or thread |
22 | class Strand: public Port | |
10cefb7b | 23 | { |
10cefb7b | 24 | public: |
25 | Strand(); | |
26 | ||
ba568924 AR |
27 | virtual void start(); // Port (AsyncJob) API |
28 | ||
29 | protected: | |
30 | virtual void timedout(); // Port (UsdOp) API | |
1bac0258 | 31 | virtual void receive(const TypedMsgHdr &message); // Port API |
10cefb7b | 32 | |
33 | private: | |
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 | |
41 | private: | |
ba568924 | 42 | bool isRegistered; ///< whether Coordinator ACKed registration (unused) |
10cefb7b | 43 | |
ba568924 AR |
44 | private: |
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 */ |