crmwolock.h

来自「可以实现对邮件的加密解密以及签名」· C头文件 代码 · 共 52 行

H
52
字号
/*____________________________________________________________________________
		Copyright (C) 2002 PGP Corporation
        All rights reserved.

        $Id: CRMWOLock.h,v 1.3 2002/08/06 20:10:37 dallen Exp $
____________________________________________________________________________*/

#ifndef Included_CRMWOLock_h	// [
#define Included_CRMWOLock_h

#include "pgpClassesConfig.h"
#include "CMutex.h"
#include "CSemaphore.h"

_PGP_BEGIN

// Class CRMWOLock

class CRMWOLock SMART_ERROR_INHERIT
{
	friend class CRMWOLock;

public:
	CRMWOLock();
	~CRMWOLock() { }

	virtual void	StartReading();
	virtual void	StopReading();

	virtual void	StartWriting();
	virtual void	StopWriting();

protected:
	CMutex		mMutex;
	CSemaphore	mBlockedReaders;
	CSemaphore	mBlockedWriters;

	PGPUInt32	mActiveReaders;
	PGPUInt32	mWaitingReader;
	PGPUInt32	mActiveWriters;
	PGPUInt32	mWaitingWriter;

	PGPBoolean	mWritersFirst;

	virtual void	ReleaseReaders();
	virtual void	ReleaseWriters();
};

_PGP_END

#endif	// ] Included_CRMWOLock_h

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?