SLikeNet  0.1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
thread.h
Go to the documentation of this file.
1 /*
2  * Original work: Copyright (c) 2014, Oculus VR, Inc.
3  * All rights reserved.
4  *
5  * This source code is licensed under the BSD-style license found in the
6  * RakNet License.txt file in the licenses directory of this source tree. An additional grant
7  * of patent rights can be found in the RakNet Patents.txt file in the same directory.
8  *
9  *
10  * Modified work: Copyright (c) 2017, SLikeSoft UG (haftungsbeschränkt)
11  *
12  * This source code was modified by SLikeSoft. Modifications are licensed under the MIT-style
13  * license found in the license.txt file in the root directory of this source tree.
14  */
15 
16 #ifndef __RAK_THREAD_H
17 #define __RAK_THREAD_H
18 
19 #if defined(_WIN32_WCE)
20 #include "WindowsIncludes.h"
21 #endif
22 
23 
24 
25 
26 
27 #include "Export.h"
28 
29 
30 
31 
32 
33 
34 #if defined(WINDOWS_PHONE_8) || defined(WINDOWS_STORE_RT)
35 #include "../DependentExtensions/WinPhone8/ThreadEmulation.h"
36 using namespace ThreadEmulation;
37 #endif
38 
39 namespace SLNet
40 {
42 #if defined(_WIN32_WCE) || defined(WINDOWS_PHONE_8) || defined(WINDOWS_STORE_RT)
43 #define RAK_THREAD_DECLARATION(functionName) DWORD WINAPI functionName(LPVOID arguments)
44 
45 
46 #elif defined(_WIN32)
47 #define RAK_THREAD_DECLARATION(functionName) unsigned __stdcall functionName( void* arguments )
48 
49 
50 #else
51 #define RAK_THREAD_DECLARATION(functionName) void* functionName( void* arguments )
52 #endif
53 
55 {
56 public:
57 
58 
59 
60 
66 
67  /*
68  nice value Win32 Priority
69  -20 to -16 THREAD_PRIORITY_HIGHEST
70  -15 to -6 THREAD_PRIORITY_ABOVE_NORMAL
71  -5 to +4 THREAD_PRIORITY_NORMAL
72  +5 to +14 THREAD_PRIORITY_BELOW_NORMAL
73  +15 to +19 THREAD_PRIORITY_LOWEST
74  */
75 #if defined(_WIN32_WCE) || defined(WINDOWS_PHONE_8) || defined(WINDOWS_STORE_RT)
76  static int Create( LPTHREAD_START_ROUTINE start_address, void *arglist, int priority=0);
77 
78 
79 #elif defined(_WIN32)
80  static int Create( unsigned __stdcall start_address( void* ), void *arglist, int priority=0);
81 
82 
83 
84 #else
85  static int Create( void* start_address( void* ), void *arglist, int priority=0);
86 #endif
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 };
108 
109 }
110 
111 #endif