X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Feventdispatcher.cpp;h=cf37c1e7e1fbd81155608895bd14ebe9bd882e10;hb=d28df82ca5c33fa4be0f6ce1ffee58b8e447e20c;hp=3a3baa673d1c08a4412f9a875af1a6cd086f1583;hpb=b4806214e905752617691f851717033fd3f266c2;p=libs%2Fcore.git diff --git a/source/io/eventdispatcher.cpp b/source/io/eventdispatcher.cpp index 3a3baa6..cf37c1e 100644 --- a/source/io/eventdispatcher.cpp +++ b/source/io/eventdispatcher.cpp @@ -1,3 +1,4 @@ +#include #include "base.h" #include "eventdispatcher.h" #include "eventobject.h" @@ -9,6 +10,9 @@ namespace IO { EventDispatcher::EventDispatcher() { } +EventDispatcher::~EventDispatcher() +{ } + void EventDispatcher::add(EventObject &obj) { SlotMap::iterator i = objects.find(&obj); @@ -54,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);