This is Unofficial EPICS BASE Doxygen Site
tcpRecvWatchdog.h
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2002 The University of Chicago, as Operator of Argonne
3 * National Laboratory.
4 * Copyright (c) 2002 The Regents of the University of California, as
5 * Operator of Los Alamos National Laboratory.
6 * EPICS BASE is distributed subject to a Software License Agreement found
7 * in file LICENSE that is included with this distribution.
8 \*************************************************************************/
9 
10 /*
11  *
12  *
13  * L O S A L A M O S
14  * Los Alamos National Laboratory
15  * Los Alamos, New Mexico 87545
16  *
17  * Copyright, 1986, The Regents of the University of California.
18  *
19  *
20  * Author Jeffrey O. Hill
21  * johill@lanl.gov
22  * 505 665 1831
23  */
24 
25 #ifndef INC_tcpRecvWatchdog_H
26 #define INC_tcpRecvWatchdog_H
27 
28 #include "epicsTimer.h"
29 
30 #include "libCaAPI.h"
31 
32 class tcpiiu;
33 
34 class tcpRecvWatchdog : private epicsTimerNotify {
35 public:
36  tcpRecvWatchdog ( epicsMutex & cbMutex,
37  cacContextNotify & ctxNotify,
38  epicsMutex & mutex, tcpiiu &,
39  double periodIn, epicsTimerQueue & );
40  virtual ~tcpRecvWatchdog ();
44  epicsGuard < epicsMutex > & guard );
45  void probeResponseNotify (
47  void beaconArrivalNotify (
50  void connectNotify (
52  void sendTimeoutNotify (
53  epicsGuard < epicsMutex > & cbGuard,
54  epicsGuard < epicsMutex > & guard );
55  void cancel ();
56  void shutdown ();
57  void show ( unsigned level ) const;
58  double delay () const;
59 private:
60  const double period;
61  epicsTimer & timer;
62  epicsMutex & cbMutex;
63  cacContextNotify & ctxNotify;
64  epicsMutex & mutex;
65  tcpiiu & iiu;
66  bool probeResponsePending;
67  bool beaconAnomaly;
68  bool probeTimeoutDetected;
69  bool shuttingDown;
70  expireStatus expire ( const epicsTime & currentTime );
71  tcpRecvWatchdog ( const tcpRecvWatchdog & );
72  tcpRecvWatchdog & operator = ( const tcpRecvWatchdog & );
73 };
74 
75 #endif // #ifndef INC_tcpRecvWatchdog_H
76 
void sendTimeoutNotify(epicsGuard< epicsMutex > &cbGuard, epicsGuard< epicsMutex > &guard)
virtual ~tcpRecvWatchdog()
void sendBacklogProgressNotify(epicsGuard< epicsMutex > &)
double delay() const
void probeResponseNotify(epicsGuard< epicsMutex > &)
void show(unsigned level) const
void connectNotify(epicsGuard< epicsMutex > &)
void beaconAnomalyNotify(epicsGuard< epicsMutex > &)
void messageArrivalNotify(epicsGuard< epicsMutex > &guard)
void beaconArrivalNotify(epicsGuard< epicsMutex > &)
tcpRecvWatchdog(epicsMutex &cbMutex, cacContextNotify &ctxNotify, epicsMutex &mutex, tcpiiu &, double periodIn, epicsTimerQueue &)