-
Notifications
You must be signed in to change notification settings - Fork 58
/
eljthread.cpp
110 lines (88 loc) · 1.9 KB
/
eljthread.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include "wrapper.h"
extern "C"
{
EWXWEXPORT(void*,wxCriticalSection_Create)()
{
return (void*)new wxCriticalSection ();
}
EWXWEXPORT(void,wxCriticalSection_Delete)(void* self)
{
delete (wxCriticalSection*)self;
}
EWXWEXPORT(void,wxCriticalSection_Enter)(void* self)
{
((wxCriticalSection*)self)->Enter();
}
EWXWEXPORT(void,wxCriticalSection_Leave)(void* self)
{
((wxCriticalSection*)self)->Leave();
}
EWXWEXPORT(wxMutex*,wxMutex_Create)()
{
return new wxMutex ();
}
EWXWEXPORT(void,wxMutex_Delete)(wxMutex* self)
{
delete self;
}
EWXWEXPORT(int,wxMutex_Lock)(wxMutex* self)
{
return (int)self->Lock();
}
EWXWEXPORT(int,wxMutex_TryLock)(wxMutex* self)
{
return (int)self->TryLock();
}
EWXWEXPORT(int,wxMutex_Unlock)(wxMutex* self)
{
return (int)self->Unlock();
}
EWXWEXPORT(bool,wxMutex_IsLocked)(wxMutex* self)
{
#if wxVERSION_NUMBER >= 2400
return false;
#else
return self->IsLocked();
#endif
}
EWXWEXPORT(void*,wxCondition_Create)(void* _mutex)
{
#if wxVERSION_NUMBER < 2400
return (void*)new wxCondition ();
#else
return (void*)new wxCondition (*((wxMutex*)_mutex));
#endif
}
EWXWEXPORT(void,wxCondition_Delete)(void* self)
{
delete (wxCondition*)self;
}
EWXWEXPORT(void,wxCondition_Wait)(void* self)
{
((wxCondition*)self)->Wait();
}
EWXWEXPORT(int,wxCondition_WaitFor)(void* self,int sec,int nsec)
{
#if wxVERSION_NUMBER >= 2400
return (int)((wxCondition*)self)->WaitTimeout((unsigned long)nsec);
#else
return (int)((wxCondition*)self)->Wait((unsigned long)sec, (unsigned long)nsec);
#endif
}
EWXWEXPORT(void,wxCondition_Signal)(void* self)
{
((wxCondition*)self)->Signal();
}
EWXWEXPORT(void,wxCondition_Broadcast)(void* self)
{
((wxCondition*)self)->Broadcast();
}
EWXWEXPORT(void,wxMutexGui_Enter)()
{
wxMutexGuiEnter();
}
EWXWEXPORT(void,wxMutexGui_Leave)()
{
wxMutexGuiLeave();
}
}