Scheduler: Implement new file descriptor event API
[senf.git] / Scheduler / FdEvent.cti
similarity index 76%
rename from Scheduler/FdDispatcher.cti
rename to Scheduler/FdEvent.cti
index b82d411..f33ef1c 100644 (file)
@@ -23,7 +23,7 @@
 /** \file
     \brief FdDispatcher inline template implementation */
 
-#include "FdDispatcher.ih"
+#include "FdEvent.ih"
 
 // Custom includes
 
 ///////////////////////////////cti.p///////////////////////////////////////
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::scheduler::detail::FdTask<index,Self>
-
-template <unsigned index, class Self>
-prefix_ void senf::scheduler::detail::FdTask<index,Self>::run()
-{
-    cb(self().events);
-}
-
-template <unsigned index, class Self>
-prefix_ Self & senf::scheduler::detail::FdTask<index,Self>::self()
+// senf::scheduler::FdEvent
+
+template <class Handle>
+prefix_ senf::scheduler::FdEvent::FdEvent(std::string const & name, Callback const & cb,
+                                          Handle const & handle, int events,
+                                          bool initiallyEnabled)
+    : FIFORunner::TaskInfo (name), cb_ (cb), fd_ (retrieve_filehandle(handle)), pollable_ (true),
+      events_ (events)
 {
-    return static_cast<Self&>(*this);
+    if (initiallyEnabled)
+       enable();
 }
 
 ///////////////////////////////cti.e///////////////////////////////////////