Eris  1.3.19
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
Abstract interface for things which occur after a period of time.
Definition: TimedEventService.h:16
bool isExpired() const
test whether or not the timeout has fired or not
Definition: Timeout.cpp:38
sigc::signal< void > Expired
The timeout signal.
Definition: Timeout.h:50
Timeout & operator=(const Timeout &t)
assignment operator
void cancel()
cancel the Timeout immediately
Definition: Timeout.cpp:32
bool _fired
flag if the timeout has expired
Definition: Timeout.h:60
virtual const WFMath::TimeStamp & due() const
The time value when this event is due.
Definition: Timeout.h:54
Timeout(unsigned long milli)
standard constructor for new timeouts
Definition: Timeout.cpp:20
Timeout.
Definition: Timeout.h:12
WFMath::TimeStamp _due
interval at which the timeout is due
Definition: Timeout.h:59
void extend(unsigned long msec)
Extend the timeout termination by the specified time.
Definition: Timeout.cpp:52
void reset(unsigned long msec)
reset the timeout to the specified time, and reset the 'expired' flag.
Definition: Timeout.cpp:43
virtual void expired()
Implement the expiry behaviour of this object.
Definition: Timeout.cpp:57