5DT Data Glove plugin
1.0
Main Page
Modules
Namespaces
Classes
Files
File List
include
ou_thread.h
1
7
/* Copyright 2000 - 2005 Vijay Mathew Pandyalakal. All rights reserved.
8
*
9
* This software may be used or modified for any purpose, personal or
10
* commercial. Open Source redistributions are permitted.
11
*
12
* Redistributions qualify as "Open Source" under one of the following terms:
13
*
14
* Redistributions are made at no charge beyond the reasonable cost of
15
* materials and delivery.
16
*
17
* Redistributions are accompanied by a copy of the Source Code or by an
18
* irrevocable offer to provide a copy of the Source Code for up to three
19
* years at the cost of materials and delivery. Such redistributions
20
* must allow further use, modification, and redistribution of the Source
21
* Code under substantially the same terms as this license.
22
*
23
* Redistributions of source code must retain the copyright notices as they
24
* appear in each source code file, these license terms, and the
25
* disclaimer/limitation of liability set forth as paragraph 6 below.
26
*
27
* Redistributions in binary form must reproduce this Copyright Notice,
28
* these license terms, and the disclaimer/limitation of liability set
29
* forth as paragraph 6 below, in the documentation and/or other materials
30
* provided with the distribution.
31
*
32
* The Software is provided on an "AS IS" basis. No warranty is
33
* provided that the Software is free of defects, or fit for a
34
* particular purpose.
35
*
36
* Limitation of Liability. The Author shall not be liable
37
* for any damages suffered by the Licensee or any third party resulting
38
* from use of the Software.
39
*/
40
#include <scolPlugin.h>
41
namespace
openutils {
42
class
ThreadException
;
43
class
Mutex
;
44
51
class
Thread
{
52
53
private
:
54
// unsigned long* to the low-level thread object
55
unsigned
long
* m_hThread;
56
// a name to identify the thread
57
std::string m_strName;
58
59
public
:
60
Thread
();
61
Thread
(
const
char
* nm);
62
virtual
~
Thread
();
63
void
setName
(
const
char
* nm);
64
std::string
getName
()
const
;
65
void
start
();
66
virtual
void
run
();
67
void
sleep
(
long
ms);
68
void
suspend
();
69
void
resume
();
70
void
stop
();
71
72
void
setPriority
(
int
p);
73
74
bool
wait
(
const
char
* m,
long
ms=5000);
75
void
release
(
const
char
* m);
76
77
public
:
78
// Thread priorities
79
static
const
int
P_ABOVE_NORMAL;
80
static
const
int
P_BELOW_NORMAL;
81
static
const
int
P_HIGHEST;
82
static
const
int
P_IDLE;
83
static
const
int
P_LOWEST;
84
static
const
int
P_NORMAL;
85
static
const
int
P_CRITICAL;
86
private
:
87
};
// class Thread
88
93
class
Mutex
{
94
private
:
95
// unsigned long* to the low-level mutex object
96
unsigned
long
* m_hMutex;
97
// name to identify the mutex
98
std::string m_strName;
99
public
:
100
Mutex
();
101
Mutex
(
const
char
* nm);
102
void
create
(
const
char
* nm);
103
unsigned
long
*
getMutexHandle
();
104
std::string
getName
();
105
void
release();
106
~
Mutex
();
107
};
108
113
class
ThreadException
{
114
private
:
115
std::string msg;
116
public
:
117
ThreadException
(
const
char
* m);
118
std::string getMessage()
const
;
119
};
120
}
// namespace openutils
121
122
// global function called by the thread object.
123
// this in turn calls the overridden run()
124
extern
"C"
{
125
unsigned
int
_ou_thread_proc(
void
* param);
126
}
127
128
129
Generated on Tue Jan 6 2015 10:46:18 for 5DT Data Glove plugin by
1.8.1.2