X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Feventdispatcher.cpp;h=2150fe23b7055fb0fd1e0d5eb3ae770d60c9b9dc;hp=04147e9bee4647e6d452c2d8e35e4f3eac61265c;hb=8b29f7bad5fac36817424fedd2b6206df9d545c5;hpb=8dbddc01acb154403c38348fd3fbea22ee0b33c4 diff --git a/source/eventdispatcher.cpp b/source/eventdispatcher.cpp index 04147e9..2150fe2 100644 --- a/source/eventdispatcher.cpp +++ b/source/eventdispatcher.cpp @@ -47,23 +47,22 @@ void EventDispatcher::remove(Base &obj) } } -void EventDispatcher::tick(bool block) +void EventDispatcher::tick() { if(objects.empty()) return; - int ret; - if(block) - ret=poller.poll(); - else - ret=poller.poll(Time::zero); + if(poller.poll()>0) + dispatch(); +} - if(ret>0) - { - const Poller::SlotSeq &result=poller.get_result(); - for(Poller::SlotSeq::const_iterator i=result.begin(); i!=result.end(); ++i) - i->object->event(i->events); - } +void EventDispatcher::tick(const Time::TimeDelta &dt) +{ + if(objects.empty()) + return; + + if(poller.poll(dt)>0) + dispatch(); } void EventDispatcher::object_events_changed(PollEvent ev, Base *obj) @@ -76,5 +75,12 @@ void EventDispatcher::object_deleted(Base *obj) remove(*obj); } +void EventDispatcher::dispatch() +{ + const Poller::SlotSeq &result=poller.get_result(); + for(Poller::SlotSeq::const_iterator i=result.begin(); i!=result.end(); ++i) + i->object->event(i->events); +} + } // namespace IO } // namespace Msp