X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fpoll.h;h=6367d8f2b301544f26953220284868d7658b22fb;hp=6ac6149b155b1634b9835a87233342e51fdd25b1;hb=b97d4e9f86e90254ab9edef7ee62a910f6333c78;hpb=c0861d1f8e3869f058bc8b152cd35a08e5b03e73 diff --git a/source/poll.h b/source/poll.h index 6ac6149..6367d8f 100644 --- a/source/poll.h +++ b/source/poll.h @@ -1,9 +1,3 @@ -/* $Id$ - -This file is part of libmspio -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ #ifndef MSP_IO_POLL_H_ #define MSP_IO_POLL_H_ @@ -23,21 +17,22 @@ class Base; enum PollEvent { - P_NONE=0, - P_INPUT=1, - P_PRIO=2, - P_OUTPUT=4, - P_ERROR=8 + P_NONE = 0, + P_INPUT = 1, + P_PRIO = 2, + P_OUTPUT = 4, + P_ERROR = 8 }; inline PollEvent operator|(PollEvent e, PollEvent f) -{ return PollEvent((int)e|(int)f); } +{ return PollEvent(static_cast(e)|static_cast(f)); } inline PollEvent operator&(PollEvent e, PollEvent f) -{ return PollEvent((int)e&(int)f); } +{ return PollEvent(static_cast(e)&static_cast(f)); } inline PollEvent operator~(PollEvent e) -{ return PollEvent(~(int)e); } +{ return PollEvent(~static_cast(e)); } + class Poller { @@ -49,13 +44,8 @@ public: Slot(Base *o, PollEvent e): object(o), events(e) { } }; - typedef std::list SlotSeq; - Poller(); - void set_object(Base &, PollEvent); - int poll(); - int poll(const Time::TimeDelta &); - const SlotSeq &get_result() const { return poll_result; } + typedef std::list SlotSeq; private: typedef std::map SlotMap; @@ -73,6 +63,14 @@ private: void rebuild_pfd(); int do_poll(int); + +public: + Poller(); + + void set_object(Base &, PollEvent); + int poll(); + int poll(const Time::TimeDelta &); + const SlotSeq &get_result() const { return poll_result; } }; PollEvent poll(Base &, PollEvent);