tcssl.h

来自「并行TIN生成算法, 基于DeWall算法理论实现」· C头文件 代码 · 共 76 行

H
76
字号
/* -*- C++ -*- */

//=============================================================================
/**
 *  @文件    TcsSL.h
 *
 *  TcsSL.h, 版本 1.30 2008/12/15
 *
 *  @作者 邓雪清 <xueqingdeng@sohu.com>
 *  单向链表类
 */
//=============================================================================

#ifndef _TCS_SL_H_
#define _TCS_SL_H_

#if !defined (_WIN32)
	#define DLLEXPORT
#elif !defined (DLLEXPORT)
	#if defined (_LIB)
		#define DLLEXPORT
	#elif defined (_USRDLL)
		#define DLLEXPORT __declspec(dllexport)
	#else
		#define DLLEXPORT __declspec(dllimport)
	#endif
#endif

#include <Windows.h>

// ----- CTcsSL -------------------------------------------------------------

class DLLEXPORT CTcsSL
{
protected:
	struct NODE {
		NODE	*next;
		void	*data;
	};

public:
	CTcsSL(void);
	~CTcsSL(void);

	void Lock(void);
	void Lose(void);

	long  GetSize(void);
	void *PopData(void);
	void *PutData(void *pData);

protected:
	NODE *NewNode(void);

	NODE	*m_pHead;
	NODE	*m_pFree;
	void	*m_mLock;
	long	 m_nSize;
};

inline void CTcsSL::Lock(void)
{
	::WaitForSingleObject(m_mLock, INFINITE);
}

inline void CTcsSL::Lose(void)
{
	::ReleaseMutex(m_mLock);
}

inline long CTcsSL::GetSize(void)
{
	return m_nSize;
}

#endif // _TCS_SL_H_

⌨️ 快捷键说明

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