PPI: Allow to change the IOEvent handle/event mask
[senf.git] / PPI / IOEvent.cti
index 7372e36..5f36a06 100644 (file)
@@ -40,6 +40,19 @@ prefix_ senf::ppi::IOEvent::IOEvent(Handle handle, unsigned events)
       event_ ("senf::ppi::IOEvent", boost::bind(&IOEvent::cb,this,_1), fd_, events, false) 
 {}
 
+template <class Handle>
+prefix_ void senf::ppi::IOEvent::set(Handle handle, unsigned events)
+{
+    if (handle) {
+        fd_ = senf::scheduler::get_descriptor(handle);
+        event_.events(events).handle(fd_);
+    }
+    else {
+        event_.disable();
+        fd_ = -1;
+    }
+}
+
 ///////////////////////////////cti.e///////////////////////////////////////
 #undef prefix_