#ifndef PLAQUI_RUNNABLE_H
#define PLAQUI_RUNNABLE_H
+#include <glibmm/thread.h>
+
namespace Plaqui {
/// ealizauna tarea (generalmente en un thread).
class Runnable {
+ private:
+ // Thread en el cual correr la tarea.
+ Glib::Thread* thread;
+
+ protected:
+
+ /// Realiza la terea.
+ virtual void real_run(void) = 0;
+
public:
- /// Realiza la tarea.
- virtual void run(void) = 0;
+ /**
+ * Destructor.
+ */
+ virtual ~Runnable(void) {}
+
+ /**
+ * Constructor.
+ */
+ Runnable(void);
+
+ /**
+ * Comienza la tares.
+ *
+ * \param detach Si es true se corre en un thread propio. Si no no
+ * retorna hasta que finaliza.
+ */
+ virtual void run(bool detach = true);
};