Eris  1.3.21
Timeout.h
1 #ifndef ERIS_TIMEOUT_H
2 #define ERIS_TIMEOUT_H
3 
4 #include <Eris/TimedEventService.h>
5 
6 #include <sigc++/trackable.h>
7 #include <sigc++/signal.h>
8 
9 namespace Eris {
10 
12 class Timeout : public TimedEvent, virtual public sigc::trackable
13 {
14 public:
15 
21  Timeout(unsigned long milli);
22 
23  virtual ~Timeout();
24 
26  Timeout& operator=(const Timeout &t);
27 
34  void extend(unsigned long msec);
35 
41  void reset(unsigned long msec);
42 
44  void cancel();
45 
47  bool isExpired() const;
48 
50  sigc::signal<void> Expired;
51 
52  virtual void expired();
53 
54  virtual const WFMath::TimeStamp& due() const
55  {
56  return _due;
57  }
58 protected:
59  WFMath::TimeStamp _due;
60  bool _fired;
61 
62 private:
64  Timeout(const Timeout &t);
65 };
66 
67 } // of Eris namespace
68 
69 #endif