Eris
1.3.21
|
00001 #ifndef ERIS_TIMEOUT_H 00002 #define ERIS_TIMEOUT_H 00003 00004 #include <Eris/TimedEventService.h> 00005 00006 #include <sigc++/trackable.h> 00007 #include <sigc++/signal.h> 00008 00009 namespace Eris { 00010 00012 class Timeout : public TimedEvent, virtual public sigc::trackable 00013 { 00014 public: 00015 00021 Timeout(unsigned long milli); 00022 00023 virtual ~Timeout(); 00024 00026 Timeout& operator=(const Timeout &t); 00027 00034 void extend(unsigned long msec); 00035 00041 void reset(unsigned long msec); 00042 00044 void cancel(); 00045 00047 bool isExpired() const; 00048 00050 sigc::signal<void> Expired; 00051 00052 virtual void expired(); 00053 00054 virtual const WFMath::TimeStamp& due() const 00055 { 00056 return _due; 00057 } 00058 protected: 00059 WFMath::TimeStamp _due; 00060 bool _fired; 00061 00062 private: 00064 Timeout(const Timeout &t); 00065 }; 00066 00067 } // of Eris namespace 00068 00069 #endif