X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Feventdispatcher.h;h=25455ab842f510f10e5c18f14e28779de8467b5f;hp=7e89d4739e845f0e0c180845ffedb43184eefd9f;hb=7b81490ae4ed6c7c8566f889d146677827f5d4a5;hpb=c7afef88380ebebc8c2b04e48664d73281ec8848 diff --git a/source/io/eventdispatcher.h b/source/io/eventdispatcher.h index 7e89d47..25455ab 100644 --- a/source/io/eventdispatcher.h +++ b/source/io/eventdispatcher.h @@ -1,8 +1,9 @@ -#ifndef EVENTDISPATCHER_H_ -#define EVENTDISPATCHER_H_ +#ifndef MSP_IO_EVENTDISPATCHER_H_ +#define MSP_IO_EVENTDISPATCHER_H_ #include #include +#include #include "poll.h" namespace Msp { @@ -17,23 +18,24 @@ class EventDispatcher: public sigc::trackable private: struct Slot { - Base *obj; + EventObject *obj; sigc::connection evch_conn; sigc::connection del_conn; - Slot(Base *o): obj(o) { } + Slot(EventObject *o): obj(o) { } }; - typedef std::map SlotMap; + typedef std::map SlotMap; Poller poller; SlotMap objects; public: EventDispatcher(); + ~EventDispatcher(); - void add(Base &); - void remove(Base &); + void add(EventObject &); + void remove(EventObject &); /** Checks for and dispatches events. If there are no events available, blocks until there are. */ @@ -44,8 +46,8 @@ public: void tick(const Time::TimeDelta &); private: - void object_events_changed(PollEvent, Base *); - void object_deleted(Base *); + void object_events_changed(PollEvent, EventObject *); + void object_deleted(EventObject *); void dispatch(); };