-/* $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_
inline PollEvent operator~(PollEvent e)
{ return PollEvent(~static_cast<int>(e)); }
+
class Poller
{
public:
Slot(Base *o, PollEvent e): object(o), events(e) { }
};
- typedef std::list<Slot> 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<Slot> SlotSeq;
private:
typedef std::map<Base *, Slot> SlotMap;
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);