]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/eventdispatcher.cpp
Implement controls for file descriptor inheritance
[libs/core.git] / source / io / eventdispatcher.cpp
index 8660b5b29562029daef671c892a325db51dcd783..cf37c1e7e1fbd81155608895bd14ebe9bd882e10 100644 (file)
@@ -1,4 +1,4 @@
-#include <msp/time/units.h>
+#include <msp/time/utils.h>
 #include "base.h"
 #include "eventdispatcher.h"
 #include "eventobject.h"
@@ -10,6 +10,9 @@ namespace IO {
 EventDispatcher::EventDispatcher()
 { }
 
+EventDispatcher::~EventDispatcher()
+{ }
+
 void EventDispatcher::add(EventObject &obj)
 {
        SlotMap::iterator i = objects.find(&obj);
@@ -55,6 +58,15 @@ void EventDispatcher::tick(const Time::TimeDelta &dt)
                dispatch();
 }
 
+void EventDispatcher::tick(const Time::Timer &timer)
+{
+       const Time::TimeStamp &timeout = timer.get_next_timeout();
+       if(timeout)
+               tick(timeout-Time::now());
+       else
+               tick();
+}
+
 void EventDispatcher::object_events_changed(PollEvent ev, EventObject *obj)
 {
        poller.set_object(*obj, ev);