icesignature.h

来自「使用stl技术,(还没看,是听说的)」· C头文件 代码 · 共 69 行

H
69
字号
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 *	Contains a signature class.
 *	\file		IceSignature.h
 *	\author		Pierre Terdiman
 *	\date		October, 24, 2002
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Include Guard
#ifndef __ICESIGNATURE_H__
#define __ICESIGNATURE_H__

	class ICECORE_API Signature
	{
		public:
		// Constructor/Destructor
						Signature();
						~Signature();

		inline_	void	Invalidate()		{ mTimestamp++;	}

						PREVENT_COPY(Signature)
		private:
				Handle	mStructureHandle;	//!< Object's structural validity
				udword	mTimestamp;			//!< Object's state validity

		friend	class	SignatureState;
	};

	class ICECORE_API SignatureState
	{
		public:
		// Constructor/Destructor
		inline_			SignatureState()		{}
		inline_			SignatureState(const Signature& signature) :
							mStructureHandle(signature.mStructureHandle),
							mTimestamp(signature.mTimestamp)
						{
						}
		inline_			~SignatureState()		{}

		inline_	void	operator = (const Signature& signature)
						{
							mStructureHandle = signature.mStructureHandle;
							mTimestamp = signature.mTimestamp;
						}

		inline_	BOOL	operator == (const Signature& signature)	const
						{
							if(signature.mTimestamp!=mTimestamp)				return FALSE;
							if(signature.mStructureHandle!=mStructureHandle)	return FALSE;
							return TRUE;
						}

		inline_	BOOL	operator != (const Signature& signature)	const
						{
							if(signature.mTimestamp!=mTimestamp)				return TRUE;
							if(signature.mStructureHandle!=mStructureHandle)	return TRUE;
							return FALSE;
						}
		private:
				Handle	mStructureHandle;	//!< Object's structural validity
				udword	mTimestamp;			//!< Object's state validity
	};

#endif // __ICESIGNATURE_H__

⌨️ 快捷键说明

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