X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fpoll.h;fp=source%2Fio%2Fpoll.h;h=f59b499ddbc3bad3702c42a56507c32969ddac84;hp=595237474c706acd35d9fdc48aa186d65225b7de;hb=e46de55d3c8f65d3b0eeaee76247476695e9eb7c;hpb=d4d2018e1ba971e57eb2d8fee022b70a9c33d2e5 diff --git a/source/io/poll.h b/source/io/poll.h index 5952374..f59b499 100644 --- a/source/io/poll.h +++ b/source/io/poll.h @@ -1,14 +1,10 @@ #ifndef MSP_IO_POLL_H_ #define MSP_IO_POLL_H_ -#ifndef WIN32 -#include -#endif #include #include #include #include -#include "types.h" namespace Msp { namespace IO { @@ -45,21 +41,16 @@ public: Slot(Base *o, PollEvent e): object(o), events(e) { } }; - typedef std::list SlotSeq; + typedef std::list SlotList; private: - typedef std::map SlotMap; + typedef std::map EventMap; -#ifdef WIN32 - struct pollfd - { - Handle fd; - }; -#endif + struct Private; - SlotMap objects; - std::vector pfd; - bool pfd_dirty; - SlotSeq poll_result; + EventMap objects; + Private *priv; + bool objs_changed; + SlotList poll_result; public: Poller(); @@ -68,10 +59,10 @@ public: int poll(); int poll(const Time::TimeDelta &); private: - void rebuild_pfd(); + void rebuild_array(); int do_poll(int); public: - const SlotSeq &get_result() const { return poll_result; } + const SlotList &get_result() const { return poll_result; } }; PollEvent poll(Base &, PollEvent);