mrfioc2  2.3.0
pollirq.h
Go to the documentation of this file.
1 #ifndef POLLIRQ_H
2 #define POLLIRQ_H
3 
4 #include <epicsThread.h>
5 #include <epicsEvent.h>
6 #include <epicsMutex.h>
7 #include <shareLib.h>
8 
9 extern "C" {
10  typedef void (*pollerFN)(void *);
11 }
12 
13 class epicsShareClass IRQPoller : protected epicsThreadRunable {
14 
15  epicsEvent evt;
16  epicsMutex lock;
17  bool done;
18  const double period;
19 
20  const pollerFN fn;
21  void * const arg;
22 
23  epicsThread runner;
24 
25  virtual void run();
26 public:
27  IRQPoller(pollerFN fn, void *arg, double period);
28  virtual ~IRQPoller();
29 
30 private:
31  IRQPoller(const IRQPoller&);
32  IRQPoller& operator=(const IRQPoller&);
33 };
34 
35 #endif // POLLIRQ_H
void(* pollerFN)(void *)
Definition: pollirq.h:10