X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/43203fc1132e402ab5751167ed64196f10f5dedf..ea73629e106c1ba77bcd09feac7e22035f28b7d7:/Server/include/plaqui/server/runnable.h?ds=sidebyside diff --git a/Server/include/plaqui/server/runnable.h b/Server/include/plaqui/server/runnable.h index 2d34e6c..c46cf8c 100644 --- a/Server/include/plaqui/server/runnable.h +++ b/Server/include/plaqui/server/runnable.h @@ -42,9 +42,15 @@ namespace Server { public: + /// Error. + typedef unsigned Error; + /// 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; + // Atributos. private: @@ -52,12 +58,21 @@ namespace Server { /// Thread en el cual correr la tarea. Glib::Thread* thread; - /// Indica si se debe frinalizar la tarea. - bool stop; - /// Señal que indica que se finalizó la tarea. SignalFinished finished; + protected: + + /// Señal que indica que hubo un error. + SignalError error; + + /** + * Indica si se debe frinalizar la tarea. + * + * \todo Poner como privado y poner get() set() con locks. + */ + bool stop; + // Métodos. private: @@ -79,7 +94,7 @@ namespace Server { /** * Destructor. */ - virtual ~Runnable(void) {} + virtual ~Runnable(void); /** * Constructor. @@ -107,11 +122,14 @@ namespace Server { /** * Obtiene la señal que avisa cuando la tarea es finalizada. - * - * \see finish(). */ SignalFinished& signal_finished(void); + /** + * Obtiene la señal que avisa que hubo un error. + */ + SignalError& signal_error(void); + }; }