📄 csemaphoreimpdrv98.h
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: CSemaphoreImpDrv98.h,v 1.3 2002/08/06 20:10:50 dallen Exp $
____________________________________________________________________________*/
#ifndef Included_CSemaphoreImpDrv98_h // [
#define Included_CSemaphoreImpDrv98_h
#include "pgpClassesConfig.h"
#include "CSemaphoreImp.h"
_PGP_BEGIN
// Class CSemaphoreImpDrv98
class CSemaphoreImpDrv98 : public CSemaphoreImp
{
friend class CPFLImpFactoryDrv98;
private:
CSemaphoreImpDrv98();
public:
~CSemaphoreImpDrv98();
PGPUInt32 Wait(PGPInt32 msTimeout);
void Signal(PGPUInt32 count);
private:
SEMHANDLE mSemaphore;
};
// Class CSemaphoreImpDrv98 member functions
inline
CSemaphoreImpDrv98::CSemaphoreImpDrv98()
{
if (IsNull(mSemaphore = Create_Semaphore(0)))
Status().pgpErr = kPGPError_SyncObjOpFailed;
}
inline
CSemaphoreImpDrv98::~CSemaphoreImpDrv98()
{
if (IsntNull(mSemaphore))
{
Destroy_Semaphore(mSemaphore);
mSemaphore = NULL;
}
}
inline
PGPUInt32
CSemaphoreImpDrv98::Wait(PGPInt32 msTimeout)
{
pgpAssert(msTimeout == CMutex::InfiniteTimeout);
Wait_Semaphore(mSemaphore, BLOCK_SVC_INTS | BLOCK_THREAD_IDLE);
return 0;
}
inline
void
CSemaphoreImpDrv98::Signal(PGPUInt32 count)
{
pgpAssert(count == 1);
Signal_Semaphore(mSemaphore);
}
_PGP_END
#endif // ] Included_CSemaphoreImpDrv98_h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -