Scheduler: Implement new file descriptor event API
[senf.git] / PPI / IOEvent.cc
index e32b884..f63288d 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
-// Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
@@ -27,7 +27,7 @@
 //#include "IOEvent.ih"
 
 // Custom includes
-#include <boost/bind.hpp>
+#include "../Utils/senfassert.hh"
 
 //#include "IOEvent.mpp"
 #define prefix_
 
 prefix_ void senf::ppi::IOEvent::v_enable()
 {
-    Scheduler::instance().add(fd_, boost::bind(&IOEvent::cb,this,_1), 
-                              Scheduler::EventId(events_));
+    event_.enable();
 }
 
 prefix_ void senf::ppi::IOEvent::v_disable()
 {
-    Scheduler::instance().remove(fd_, Scheduler::EventId(events_));
+    event_.disable();
 }
 
-prefix_ void senf::ppi::IOEvent::cb(Scheduler::EventId event)
+prefix_ void senf::ppi::IOEvent::cb(int event)
 {
-    if ((event & ~events_) != 0) {
+    if ((event & ~event_.events()) != 0) {
         if (event & Err)
             throw ErrorException();
         else if (event & Hup)
             throw HangupException();
         else
             // This cannot happen.
-            BOOST_ASSERT(false);
+            SENF_ASSERT(false);
     } else {
         IOEventInfo info = { event };
         callback(info);