PaCO++  0.05
paco_thread.h
Go to the documentation of this file.
1 #ifndef __PACO_thread__
2 #define __PACO_thread__
3 
4 #include "FabriqueManagerTpl.h"
5 #include <string>
6 #include <map>
7 #include <iostream>
8 
9 using namespace std;
10 
12 
13 class paco_mutex
14 {
15  public:
16  virtual ~paco_mutex() {};
17 
18  virtual void lock() = 0;
19  virtual void unlock() = 0;
20 };
21 
23 
25 {
26  public:
27  virtual ~paco_condition() {};
28 
29  virtual void wait() = 0;
30  virtual void signal() = 0;
31 };
32 
34 
36 {
37  public:
38  virtual ~paco_thread() {};
39  virtual void detach() {};
40 };
41 
45 
47 // Abstract class to be implemeted by each fabrique
49 
50 public:
51  virtual ~paco_fabrique_thread() {}
52 
53  virtual paco_mutex* paco_create_mutex()=0;
54  virtual paco_condition* paco_create_condition(paco_mutex * mutex)=0;
55  // Create a joinable thread
56  virtual paco_thread * paco_create_thread(void* (*fn)(void*), void* arg = NULL)=0;
57  // create a detached thread
58  virtual paco_thread * paco_create_thread(void (*fn)(void*), void* arg = NULL)=0;
59 };
60 
61 // The thread fabrique
63 
64 #endif
virtual ~paco_thread()
Definition: paco_thread.h:38
virtual void detach()
Definition: paco_thread.h:39
virtual ~paco_condition()
Definition: paco_thread.h:27
virtual ~paco_fabrique_thread()
Definition: paco_thread.h:51
virtual ~paco_mutex()
Definition: paco_thread.h:16
paco_fabrique_manager_tpl< paco_fabrique_thread > paco_fabrique_manager_thread
Definition: paco_thread.h:62