]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/include/plaqui/server/runnable.h
Se arregla un bug y se ponen caudales > 0 en el ejemplo :)
[z.facultad/75.42/plaqui.git] / Server / include / plaqui / server / runnable.h
index 145a2316ebda83e74cdb58acb2bd08cdb53bee9d..c46cf8cffedb9eea836e5e42bb6dde6972fa127a 100644 (file)
@@ -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<void> SignalFinished;
 
+                       /// Tipo de señal para indicar que hubo un error.
+                       typedef SigC::Signal2<void, const Error&, const std::string&> 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.
@@ -100,19 +115,21 @@ namespace Server {
                         * \param attach Si es true, la función no retorna hasta que no
                         *               finalice la tearea (no recomendable).
                         *
-                        * \see Para saber cuando la tarea fue finalizada puede utilizar
-                        *      la señal signal_finished().
+                        * \note Para saber cuando la tarea fue finalizada puede utilizar
+                        *       la señal signal_finished().
                         */
                        virtual void finish(bool attach = false);
 
                        /**
                         * Obtiene la señal que avisa cuando la tarea es finalizada.
-                        *
-                        * \see Para saber cuando la tarea fue finalizada puede utilizar
-                        *      la señal signal_finished().
                         */
                        SignalFinished& signal_finished(void);
 
+                       /**
+                        * Obtiene la señal que avisa que hubo un error.
+                        */
+                       SignalError& signal_error(void);
+
        };
 
 }