+++ /dev/null
-/*
-This file is part of libmspframework
-Copyright © 2006 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-#ifndef MSP_FRAMEWORK_EVENT_H_
-#define MSP_FRAMEWORK_EVENT_H_
-
-#include <sigc++/sigc++.h>
-#include "pollable.h"
-
-namespace Msp {
-
-class Application;
-
-/**
-Events can be used in multi-threaded applictions to trigger actions in the main
-thread.
-*/
-class EventManager
-{
-public:
- class Event
- {
- public:
- sigc::signal<void> signal_triggered;
-
- Event(EventManager &m, unsigned i): mgr(m), id(i) { }
- unsigned get_id() const { return id; }
- void trigger();
- private:
- EventManager &mgr;
- unsigned id;
- };
-
- EventManager(Application &);
- Event &create_event();
-private:
- class Pipe: public Pollable
- {
- public:
- Pipe();
- int write(char *, unsigned);
- int read(char *, unsigned);
- private:
- int fd[2];
-
- int get_fd() { return fd[0]; }
- };
-
- Application &app;
- Pipe pipe;
- unsigned next_id;
- std::list<Event> events;
-
- void data_available(short);
-};
-
-} // namespace Msp
-
-#endif