OSDN Git Service

ebae86b3c218e9341a42ec20d4ce28ee7f155f90
[rec10/rec10-git.git] / b25-remote / TsUtilClass.h
1 // TsUtilClass.h: TS\83\86\81[\83e\83B\83\8a\83e\83B\81[\83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X\r
2 //\r
3 //////////////////////////////////////////////////////////////////////\r
4 \r
5 #pragma once\r
6 #include "W2L.h"\r
7 #include <pthread.h>
8 \r
9 #define DWORD unsigned long
10
11 /////////////////////////////////////////////////////////////////////////////\r
12 // \83_\83C\83i\83~\83b\83N\83\8a\83t\83@\83\8c\83\93\83X\8aÇ\97\9d\83x\81[\83X\83N\83\89\83X\r
13 /////////////////////////////////////////////////////////////////////////////\r
14 \r
15 class CDynamicReferenceable\r
16 {\r
17 public:\r
18         CDynamicReferenceable();\r
19         virtual ~CDynamicReferenceable();\r
20 \r
21         void AddRef(void);\r
22         void ReleaseRef(void);\r
23 \r
24 private:\r
25         DWORD m_dwRefCount;\r
26 };\r
27 \r
28 \r
29 /////////////////////////////////////////////////////////////////////////////\r
30 // \83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93\83\89\83b\83p\81[\83N\83\89\83X\r
31 /////////////////////////////////////////////////////////////////////////////\r
32 \r
33 class CCriticalLock\r
34 {\r
35 public:\r
36         CCriticalLock();\r
37         virtual ~CCriticalLock();\r
38         \r
39         void Lock(void);\r
40         void Unlock(void);\r
41         \r
42 private:\r
43         pthread_mutex_t m_CriticalSection;\r
44 };\r
45 \r
46 \r
47 /////////////////////////////////////////////////////////////////////////////\r
48 // \83u\83\8d\83b\83N\83X\83R\81[\83v\83\8d\83b\83N\83N\83\89\83X\r
49 /////////////////////////////////////////////////////////////////////////////\r
50 \r
51 class CBlockLock\r
52 {\r
53 public:\r
54         CBlockLock(CCriticalLock *pCriticalLock);\r
55         virtual ~CBlockLock();\r
56                 \r
57 private:\r
58         CCriticalLock *m_pCriticalLock;\r
59 };\r
60 \r
61 \r