Joypad Scol plugin
ou_thread.h
Go to the documentation of this file.
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 <string>
41#include <windows.h>
42namespace openutils {
43 class ThreadException;
44 class Mutex;
45
52 class Thread {
53
54 private:
55 // unsigned long* to the low-level thread object
56 unsigned long* m_hThread;
57 // a name to identify the thread
58 std::string m_strName;
59
60 public:
61 Thread();
62 Thread(const char* nm);
63 virtual ~Thread();
64 void setName(const char* nm);
65 std::string getName() const;
66 void start();
67 virtual void run();
68 void sleep(long ms);
69 void suspend();
70 void resume();
71 void stop();
72
73 void setPriority(int p);
74
75 bool wait(const char* m,long ms=5000);
76 void release(const char* m);
77
78 public:
79 // Thread priorities
80 static const int P_ABOVE_NORMAL;
81 static const int P_BELOW_NORMAL;
82 static const int P_HIGHEST;
83 static const int P_IDLE;
84 static const int P_LOWEST;
85 static const int P_NORMAL;
86 static const int P_CRITICAL;
87 private:
88 };// class Thread
89
94 class Mutex {
95 private:
96 // unsigned long* to the low-level mutex object
97 unsigned long* m_hMutex;
98 // name to identify the mutex
99 std::string m_strName;
100 public:
101 Mutex();
102 Mutex(const char* nm);
103 void create(const char* nm);
104 unsigned long* getMutexHandle();
105 std::string getName();
106 void release();
107 ~Mutex();
108 };
109
115 private:
116 std::string msg;
117 public:
118 ThreadException(const char* m);
119 std::string getMessage() const;
120 };
121} // namespace openutils
122
123// global function called by the thread object.
124// this in turn calls the overridden run()
125extern "C" {
126 unsigned int _ou_thread_proc(void* param);
127}
128
129
130
std::string getName()
void create(const char *nm)
unsigned long * getMutexHandle()
std::string getMessage() const
static const int P_BELOW_NORMAL
Definition ou_thread.h:81
static const int P_IDLE
Definition ou_thread.h:83
virtual ~Thread()
Definition ou_thread.cpp:77
static const int P_HIGHEST
Definition ou_thread.h:82
void release(const char *m)
bool wait(const char *m, long ms=5000)
static const int P_CRITICAL
Definition ou_thread.h:86
void setName(const char *nm)
Definition ou_thread.cpp:86
static const int P_ABOVE_NORMAL
Definition ou_thread.h:80
std::string getName() const
Definition ou_thread.cpp:93
void sleep(long ms)
static const int P_NORMAL
Definition ou_thread.h:85
virtual void run()
void setPriority(int p)
static const int P_LOWEST
Definition ou_thread.h:84
unsigned int _ou_thread_proc(void *param)