]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Server/include/runnable.h
39a221f26a684bc1569c6930a9529b42d6f92f11
[z.facultad/75.42/plaqui.git] / Server / include / runnable.h
1 // vim: set noexpandtab tabstop=4 shiftwidth=4:
2 //----------------------------------------------------------------------------
3 //                                  PlaQui
4 //----------------------------------------------------------------------------
5 // This file is part of PlaQui.
6 //
7 // PlaQui is free software; you can redistribute it and/or modify it under the
8 // terms of the GNU General Public License as published by the Free Software
9 // Foundation; either version 2 of the License, or (at your option) any later
10 // version.
11 //
12 // PlaQui is distributed in the hope that it will be useful, but WITHOUT ANY
13 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15 // details.
16 //
17 // You should have received a copy of the GNU General Public License along
18 // with PlaQui; if not, write to the Free Software Foundation, Inc., 59 Temple
19 // Place, Suite 330, Boston, MA  02111-1307  USA
20 //----------------------------------------------------------------------------
21 // Creado:  Sat Oct 18 20:55:08 2003
22 // Autores: Leandro Lucarella <llucare@fi.uba.ar>
23 //----------------------------------------------------------------------------
24 //
25 // $Id$
26 //
27
28 #ifndef PLAQUI_RUNNABLE_H
29 #define PLAQUI_RUNNABLE_H
30
31 #include <glibmm/thread.h>
32
33 namespace Plaqui {
34
35         /// ealizauna tarea (generalmente en un thread).
36         class Runnable {
37
38                 private:
39                         // Thread en el cual correr la tarea.
40                         Glib::Thread* thread;
41
42                 protected:
43
44                         /// Realiza la terea.
45                         virtual void real_run(void) = 0;
46
47                 public:
48
49                         /**
50                          * Destructor.
51                          */
52                         virtual ~Runnable(void) {}
53
54                         /**
55                          * Constructor.
56                          */
57                         Runnable(void);
58
59                         /**
60                          * Comienza la tares.
61                          *
62                          * \param detach Si es true se corre en un thread propio. Si no no
63                          *                               retorna hasta que finaliza.
64                          */
65                         virtual void run(bool detach = true);
66
67         };
68
69 }
70
71 #endif // PLAQUI_RUNNABLE_H