PaCO++
0.05
paco_marcel.h
Go to the documentation of this file.
1
#include "
paco_thread.h
"
2
3
extern
"C"
{
4
#include <Padico/PM2.h>
5
}
6
7
class
paco_marcel_mutex
;
// forward declaration
8
9
class
paco_marcel_condition
:
public
paco_condition
10
{
11
public
:
12
paco_marcel_condition
(
paco_marcel_mutex
* m);
13
~paco_marcel_condition
();
14
15
void
wait
();
16
void
signal
();
17
18
private
:
19
marcel_cond_t
condition
;
20
paco_marcel_mutex
*
mutex
;
21
};
22
23
24
class
paco_marcel_mutex
:
public
paco_mutex
25
{
26
27
public
:
28
paco_marcel_mutex
();
29
~
paco_marcel_mutex
();
30
31
void
lock();
32
void
unlock();
33
34
private
:
35
marcel_mutex_t
mutex
;
36
37
friend
void
paco_marcel_condition::wait
();
38
};
39
40
class
paco_marcel_fabrique
:
virtual
public
paco_fabrique_thread
{
41
42
public
:
43
paco_mutex
* paco_create_mutex();
44
paco_condition
* paco_create_condition(
paco_mutex
*
mutex
);
45
// Create a joinable thread
46
paco_thread
* paco_create_thread(
void
* (*fn)(
void
*),
void
* arg = NULL);
47
// Create a detach thread
48
paco_thread
* paco_create_thread(
void
(*fn)(
void
*),
void
* arg = NULL);
49
};
50
51
class
paco_marcel_thread
:
public
paco_thread
52
{
53
public
:
54
paco_marcel_thread
();
55
virtual
~
paco_marcel_thread
();
56
57
private
:
58
marcel_t
thread
;
59
60
friend
paco_thread
*
paco_marcel_fabrique::paco_create_thread
(
void
* (*fn)(
void
*),
void
* arg = NULL);
61
friend
paco_thread
*
paco_marcel_fabrique::paco_create_thread
(
void
(*fn)(
void
*),
void
* arg = NULL);
62
};
paco_marcel_fabrique
Definition:
paco_marcel.h:40
paco_thread
Definition:
paco_thread.h:35
paco_condition
Definition:
paco_thread.h:24
paco_marcel_condition::~paco_marcel_condition
~paco_marcel_condition()
Definition:
paco_marcel.cc:41
paco_marcel_thread
Definition:
paco_marcel.h:51
paco_thread.h
paco_marcel_condition::wait
void wait()
Definition:
paco_marcel.cc:47
paco_marcel_mutex::mutex
marcel_mutex_t mutex
Definition:
paco_marcel.h:35
paco_marcel_condition::condition
marcel_cond_t condition
Definition:
paco_marcel.h:19
paco_fabrique_thread
Definition:
paco_thread.h:48
paco_mutex
Definition:
paco_thread.h:13
paco_marcel_condition
Definition:
paco_marcel.h:9
paco_marcel_mutex
Definition:
paco_marcel.h:24
paco_marcel_thread::thread
marcel_t thread
Definition:
paco_marcel.h:58
paco_marcel_condition::paco_marcel_condition
paco_marcel_condition(paco_marcel_mutex *m)
Definition:
paco_marcel.cc:34
paco_marcel_condition::signal
void signal()
Definition:
paco_marcel.cc:53
paco_marcel_condition::mutex
paco_marcel_mutex * mutex
Definition:
paco_marcel.h:20
paco_marcel_fabrique::paco_create_thread
paco_thread * paco_create_thread(void *(*fn)(void *), void *arg=NULL)
Definition:
paco_marcel.cc:68
Src
thread
paco_marcel.h
Generated by
1.8.13