Scheduler: Implement PollTimerSource
[senf.git] / Scheduler / TimerSource.cc
index 17d2de7..84048b0 100644 (file)
@@ -27,6 +27,7 @@
 //#include "TimerSource.ih"
 
 // Custom includes
+#include "FdEvent.hh"
 
 //#include "TimerSource.mpp"
 #define prefix_
@@ -146,6 +147,27 @@ prefix_ void senf::scheduler::detail::POSIXTimerSource::reschedule()
         SENF_THROW_SYSTEM_EXCEPTION("timer_settime()");
 }
 
+///////////////////////////////////////////////////////////////////////////
+// senf::scheduler::detail::PollTimerSource
+
+prefix_ void senf::scheduler::detail::PollTimerSource::timeout(ClockService::clock_type timeout)
+{
+    ClockService::clock_type now (ClockService::now());
+    int delay (ClockService::in_milliseconds(timeout-now)+1);
+    FileDispatcher::instance().timeout(delay<0?0:delay);
+}
+
+prefix_ void senf::scheduler::detail::PollTimerSource::notimeout()
+{
+    FileDispatcher::instance().timeout(-1);
+}
+
+prefix_ void senf::scheduler::detail::PollTimerSource::enable()
+{}
+
+prefix_ void senf::scheduler::detail::PollTimerSource::disable()
+{}
+
 ///////////////////////////////cc.e////////////////////////////////////////
 #undef prefix_
 //#include "TimerSource.mpp"