X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/6f70c17ffefd6150b68ac0f64a8116e730437408..1855f998e5c0e51e2c1958724ac84cc13a87d84c:/Server/include/plaqui/server/runnable.h diff --git a/Server/include/plaqui/server/runnable.h b/Server/include/plaqui/server/runnable.h index 810f5db..97b3785 100644 --- a/Server/include/plaqui/server/runnable.h +++ b/Server/include/plaqui/server/runnable.h @@ -38,7 +38,7 @@ namespace Server { /** * Objeto cuya función principal es realizar una tarea puntual. * - * Esta el la clase base para todos objetos que realizan una tarea, ya sea + * Esta es la clase base para todos objetos que realizan una tarea, ya sea * en un hilo (thread) propio o no. Al tener esta flexibilidad hay * dos formas típicas de usarlo cuyo punto en común es implementar una * subclase (ya que esta clase es abstracta) y sobreescribir el método @@ -71,6 +71,7 @@ namespace Server { * signal_finished(). El caso típico sería: * \code * #include "runnable.h" + * #include * #include * * // Mi objeto que realiza la tarea. @@ -89,6 +90,8 @@ namespace Server { * // Programa principal. * int main(void) { * runner = new MiRunnable(); + * // Conecta la señal finished para saber cuando terminó. + * runner->signal_finished().connect(SigC::slot(on_finished)); * runner->run(); // Corre en un hilo propio * // Espera a que termine la tarea. * while (runner) { @@ -113,6 +116,27 @@ namespace Server { /// Error. typedef unsigned Error; + ///////////////////////////////////////////////////////////////////// + /// \name Señales + //@{ + + public: + + /// Tipo de señal para indicar que se finalizó la tarea. + typedef SigC::Signal0 SignalFinished; + + /// Tipo de señal para indicar que hubo un error. + typedef SigC::Signal2 + SignalError; + + /// Obtiene la señal que avisa cuando la tarea es finalizada. + SignalFinished& signal_finished(void); + + /// Obtiene la señal que avisa que hubo un error. + SignalError& signal_error(void); + + //@} + ///////////////////////////////////////////////////////////////////// // Atributos. @@ -194,24 +218,6 @@ namespace Server { */ virtual void finish(void); - ///////////////////////////////////////////////////////////////// - /// \name Señales. - //@{ - - /// Tipo de señal para indicar que se finalizó la tarea. - typedef SigC::Signal0 SignalFinished; - - /// Tipo de señal para indicar que hubo un error. - typedef SigC::Signal2 - SignalError; - - /// Obtiene la señal que avisa cuando la tarea es finalizada. - SignalFinished& signal_finished(void); - - /// Obtiene la señal que avisa que hubo un error. - SignalError& signal_error(void); - - //@} };