00001 #ifndef QRK_MONITOR_EVENT_SCHEDULER_H 00002 #define QRK_MONITOR_EVENT_SCHEDULER_H 00003 00013 #include <memory> 00014 00015 00016 namespace qrk 00017 { 00018 class ConditionVariable; 00019 class DeviceServer; 00020 class Lock; 00021 00022 00026 class MonitorEventScheduler 00027 { 00028 MonitorEventScheduler(void); 00029 MonitorEventScheduler(const MonitorEventScheduler& rhs); 00030 MonitorEventScheduler& operator = (const MonitorEventScheduler& rhs); 00031 00032 struct pImpl; 00033 std::auto_ptr<pImpl> pimpl; 00034 00035 public: 00036 ~MonitorEventScheduler(void); 00037 static MonitorEventScheduler* object(void); 00038 00039 void terminate(void); 00040 00041 void registerWakeupTicks(ConditionVariable* condition, int ticks); 00042 void registerDeviceServer(DeviceServer* device); 00043 }; 00044 } 00045 00046 #endif /* !QRK_MONITOR_EVENT_SCHEDULER_H */