Scheduler: Add timeout() member to TimerEvent
[senf.git] / Scheduler / TimerEvent.cci
index 0dffcd9..ad671db 100644 (file)
 prefix_ senf::scheduler::TimerEvent::TimerEvent(std::string const & name, Callback const & cb,
                                                 ClockService::clock_type timeout,
                                                 bool initiallyEnabled)
-    : FIFORunner::TaskInfo (name), cb_ (cb), timeout_ (timeout)
+    : detail::FIFORunner::TaskInfo (name), cb_ (cb), timeout_ (timeout)
 {
     if (initiallyEnabled)
         enable();
 }
 
 prefix_ senf::scheduler::TimerEvent::TimerEvent(std::string const & name, Callback const & cb)
-    : FIFORunner::TaskInfo (name), cb_ (cb), timeout_ (0)
+    : detail::FIFORunner::TaskInfo (name), cb_ (cb), timeout_ (0)
 {}
 
 prefix_ senf::scheduler::TimerEvent::~TimerEvent()
@@ -65,11 +65,6 @@ prefix_ void senf::scheduler::TimerEvent::disable()
         senf::scheduler::detail::TimerDispatcher::instance().remove(*this);
 }
 
-prefix_ bool senf::scheduler::TimerEvent::enabled()
-{
-    return detail::TimerSetBase::linked();
-}
-
 prefix_ void senf::scheduler::TimerEvent::action(Callback const & cb)
 {
     cb_ = cb;
@@ -84,15 +79,43 @@ prefix_ void senf::scheduler::TimerEvent::timeout(ClockService::clock_type timeo
         enable();
 }
 
+prefix_ senf::ClockService::clock_type senf::scheduler::TimerEvent::timeout()
+    const
+{
+    return timeout_;
+}
+
 ///////////////////////////////////////////////////////////////////////////
 // senf::scheduler::detail::TimerDispatcher
 
+prefix_ void senf::scheduler::detail::TimerDispatcher::enable()
+{
+    source_->enable();
+}
+
+prefix_ void senf::scheduler::detail::TimerDispatcher::disable()
+{
+    source_->disable();
+}
+
 prefix_ bool senf::scheduler::detail::TimerDispatcher::empty()
     const
 {
     return timers_.empty();
 }
 
+prefix_ void senf::scheduler::detail::TimerDispatcher::
+timerSource(std::auto_ptr<TimerSource> timerSource)
+{
+    source_.reset(timerSource.release());
+}
+
+prefix_ senf::scheduler::detail::TimerSource *
+senf::scheduler::detail::TimerDispatcher::timerSource()
+{
+    return source_.get();
+}
+
 ///////////////////////////////cci.e///////////////////////////////////////
 #undef prefix_