00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #if !defined(AFX_GENERICSEMAPHORE_H__ABEC2DE4_97AC_4EAE_BB8D_561D8ECC5C31__INCLUDED_)
00037 #define AFX_GENERICSEMAPHORE_H__ABEC2DE4_97AC_4EAE_BB8D_561D8ECC5C31__INCLUDED_
00038
00039 #if _MSC_VER > 1000
00040 #pragma once
00041 #endif // _MSC_VER > 1000
00042
00043 #include "KomodiaSettings.h"
00044 #include "WaitableObject.h"
00045
00046 KOMODIA_NAMESPACE_START
00047
00048 class CGenericSemaphore : public CWaitableObject
00049 {
00050 public:
00051
00052
00053 virtual BOOL Aquire(unsigned long ulMSTimeout=INFINITE)=0;
00054
00055
00056 virtual long Release(long lAmount=1)=0;
00057
00058
00059
00060
00061
00062 CGenericSemaphore(long lInitialCount,
00063 long lMaxCount,
00064 const char* pSemaphoreName=NULL);
00065 virtual ~CGenericSemaphore();
00066 };
00067
00068 KOMODIA_NAMESPACE_END
00069
00070 #endif // !defined(AFX_GENERICSEMAPHORE_H__ABEC2DE4_97AC_4EAE_BB8D_561D8ECC5C31__INCLUDED_)