X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Feventdispatcher.cpp;h=144ad49bcf89a0670ea6f5c9e254120586bd91df;hp=06a594f76d397165789940184f7c1a8d0ab65771;hb=5a32939eb6e576c223e1be5f80226d9e628a2398;hpb=c7afef88380ebebc8c2b04e48664d73281ec8848 diff --git a/source/io/eventdispatcher.cpp b/source/io/eventdispatcher.cpp index 06a594f..144ad49 100644 --- a/source/io/eventdispatcher.cpp +++ b/source/io/eventdispatcher.cpp @@ -1,6 +1,6 @@ -#include #include "base.h" #include "eventdispatcher.h" +#include "eventobject.h" #include "poll.h" namespace Msp { @@ -9,7 +9,10 @@ namespace IO { EventDispatcher::EventDispatcher() { } -void EventDispatcher::add(Base &obj) +EventDispatcher::~EventDispatcher() +{ } + +void EventDispatcher::add(EventObject &obj) { SlotMap::iterator i = objects.find(&obj); if(i==objects.end()) @@ -23,7 +26,7 @@ void EventDispatcher::add(Base &obj) } } -void EventDispatcher::remove(Base &obj) +void EventDispatcher::remove(EventObject &obj) { SlotMap::iterator i = objects.find(&obj); if(i!=objects.end()) @@ -54,20 +57,20 @@ void EventDispatcher::tick(const Time::TimeDelta &dt) dispatch(); } -void EventDispatcher::object_events_changed(PollEvent ev, Base *obj) +void EventDispatcher::object_events_changed(PollEvent ev, EventObject *obj) { poller.set_object(*obj, ev); } -void EventDispatcher::object_deleted(Base *obj) +void EventDispatcher::object_deleted(EventObject *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) + const Poller::SlotList &result = poller.get_result(); + for(Poller::SlotList::const_iterator i=result.begin(); i!=result.end(); ++i) i->object->event(i->events); }