]> git.tdb.fi Git - libs/core.git/blobdiff - source/eventdispatcher.h
Drop copyright and license notices from files
[libs/core.git] / source / eventdispatcher.h
index 9bea6d2140943f014857a7bd1ee5d629add232e7..dca659274f5cc3cdc6c1f48f003399f814290f25 100644 (file)
@@ -1,13 +1,8 @@
-/* $Id$
-
-This file is part of libmspio
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
 #ifndef EVENTDISPATCHER_H_
 #define EVENTDISPATCHER_H_
 
 #include <sigc++/connection.h>
+#include <sigc++/trackable.h>
 #include "poll.h"
 
 namespace Msp {
@@ -17,7 +12,7 @@ namespace IO {
 Put your I/O objects inside one of these to get signaled when something happens
 on some of them.
 */
-class EventDispatcher
+class EventDispatcher: public sigc::trackable
 {
 public:
        EventDispatcher();
@@ -25,10 +20,16 @@ public:
        void remove(Base &);
 
        /**
-       Checks for and dispatches events.  If block is true, will block until events
-       are available.
+       Checks for and dispatches events.  If there are no events available, blocks
+       until there are.
+       */
+       void tick();
+
+       /**
+       Checks for and dispatches events.  If there are no events available, waits
+       at most the specified time before returning.
        */
-       void tick(bool =true);
+       void tick(const Time::TimeDelta &);
 private:
        struct Slot
        {
@@ -45,6 +46,7 @@ private:
 
        void object_events_changed(PollEvent, Base *);
        void object_deleted(Base *);
+       void dispatch();
 };
 
 } // namespace IO