亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? list.h

?? 真正的傳奇源代碼
?? H
字號:

// ORZ: 吝汗 include 規瘤
#pragma once

typedef VOID *	PLISTNODE;

template <class T> class CWHList
{
public:
	typedef struct tagLINKEDLIST
	{
		T						lpData;
		struct tagLINKEDLIST	*prev;
		struct tagLINKEDLIST	*next;
	} LINKEDLIST, FAR *LPLINKEDLIST;

	LPLINKEDLIST		m_lpHead;
	LPLINKEDLIST		m_lpTail;

	UINT				m_nCount;

	CRITICAL_SECTION	m_cs;

public:
	CWHList();
	~CWHList();

	BOOL			AddNewNode(T lpData);
	void			Clear();
	PLISTNODE		RemoveNode(LPLINKEDLIST lpListNode);
	BOOL			RemoveNodeByKey(SOCKET s);
	PLISTNODE		RemoveNodeByData(T lpData);
	void			*FindNode(LPLINKEDLIST lpList);
	PLISTNODE		FindData(T t);

	__inline PLISTNODE		GetHead()	
	{ 
		if (m_lpHead) 
			return (PLISTNODE)m_lpHead; 
	
		return NULL; 
	}
	
	__inline PLISTNODE		GetNext(PLISTNODE pListNode) { if (pListNode) return ((LPLINKEDLIST)pListNode)->next; return NULL; }
	__inline PLISTNODE		RemoveNode(PLISTNODE pListNode) { if (pListNode) return RemoveNode((LPLINKEDLIST)pListNode); return NULL; }
	__inline UINT			GetCount()	{ return m_nCount; }
	__inline T				GetData(PLISTNODE pListNode) { if (pListNode) return ((LPLINKEDLIST)pListNode)->lpData; return NULL; }
};

template<class T> CWHList<T>::CWHList()
{				  
	m_lpHead = NULL;
	m_lpTail = NULL;

	m_nCount = 0;

//	InitializeCriticalSection(&m_cs);
}

template<class T> CWHList<T>::~CWHList()
{
	Clear();
  
//	DeleteCriticalSection(&m_cs);
}

template<class T> BOOL CWHList<T>::AddNewNode(T lpData)
{
	BOOL fRet = FALSE;

//	EnterCriticalSection(&m_cs);

	LPLINKEDLIST lpCD = (LPLINKEDLIST)GlobalAlloc(GPTR, sizeof(LINKEDLIST));

	lpCD->lpData = lpData;

	if (!m_lpHead)
	{
		m_lpHead = lpCD;
		lpCD->prev = (LPLINKEDLIST)NULL;
	}
	else
	{
		m_lpTail->next = lpCD;
		lpCD->prev = m_lpTail;
	}

	lpCD->next = (LPLINKEDLIST)NULL;
	m_lpTail = lpCD;

	m_nCount++;

	fRet = TRUE;
//		LeaveCriticalSection(&m_cs);

	return fRet;
}

template<class T> void CWHList<T>::Clear()
{
//	EnterCriticalSection(&m_cs);

	LPLINKEDLIST	lpNode	= m_lpHead;

	while (lpNode)
		lpNode = (LPLINKEDLIST)RemoveNode(lpNode);
//		LeaveCriticalSection(&m_cs);
}

template<class T> PLISTNODE CWHList<T>::RemoveNode(LPLINKEDLIST lpList)
{
    LPLINKEDLIST prev = NULL, next;

//	EnterCriticalSection(&m_cs);

	next = lpList->next;
	prev = lpList->prev;

	if (prev) prev->next = next;
	else m_lpHead = next;

	if (next) next->prev = prev;
	else m_lpTail = prev;

	GlobalFree(lpList);
	lpList = NULL;

	m_nCount--;
//		LeaveCriticalSection(&m_cs);

	return (PLISTNODE)next;
}

template <class T>BOOL CWHList<T>::RemoveNodeByKey(SOCKET s)
{
//	EnterCriticalSection(&m_cs);

    LPLINKEDLIST	prev	= NULL, next;
	LPLINKEDLIST	lpNode	= m_lpHead;
	BOOL			fFlag	= FALSE;

	while (lpNode)
	{
		if (((CSessionInfo*)lpNode->lpData)->sock == s)
		{
			next = lpNode->next;
			prev = lpNode->prev;

			if (prev) prev->next = next;
			else m_lpHead = next;

			if (next) next->prev = prev;
			else m_lpTail = prev;

			GlobalFree(lpNode);
			lpNode = NULL;

			m_nCount--;

			fFlag = TRUE;

			break;
		}

		lpNode = lpNode->next;
	}
//		LeaveCriticalSection(&m_cs);

	return fFlag;
}

template <class T>PLISTNODE CWHList<T>::RemoveNodeByData(T lpData)
{
//	EnterCriticalSection(&m_cs);

    LPLINKEDLIST	prev	= NULL, next;
	LPLINKEDLIST	lpNode	= m_lpHead;

	__try
	{
		while (lpNode)
		{
			if ((T)lpNode->lpData == lpData)
			{
				next = lpNode->next;
				prev = lpNode->prev;

				if (prev) prev->next = next;
				else m_lpHead = next;

				if (next) next->prev = prev;
				else m_lpTail = prev;

				GlobalFree(lpNode);
				lpNode = NULL;

				m_nCount--;

				break;
			}

			lpNode = lpNode->next;
		}
	}
	__finally
	{
//		LeaveCriticalSection(&m_cs);
	}

	return (PLISTNODE)next;
}

template <class T> void *CWHList<T>::FindNode(LPLINKEDLIST lpList)
{
//	EnterCriticalSection(&m_cs);

	LPLINKEDLIST lpNode = m_lpHead;

	while (lpNode)
	{
		if (lpNode == lpList)
		{
			// ORZ: 內靛 眠啊
//			LeaveCriticalSection( &m_cs );
			return lpNode;
		}

		lpNode = lpNode->next;
	}

//	LeaveCriticalSection(&m_cs);

	return NULL;
}

template <class T>PLISTNODE CWHList<T>::FindData(T t)
{
	LPLINKEDLIST lpNode = m_lpHead;

//	EnterCriticalSection(&m_cs);

	while (lpNode)
	{
		if (((T)lpNode->lpData) == t)
		{
			// ORZ: 內靛 眠啊
//			LeaveCriticalSection( &m_cs );
			return (PLISTNODE)lpNode;
		}

		lpNode = lpNode->next;
	}

//	LeaveCriticalSection(&m_cs);

	return (PLISTNODE) NULL;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
首页综合国产亚洲丝袜| 国产伦精品一区二区三区视频青涩| 日韩午夜激情av| 6080亚洲精品一区二区| 91精品婷婷国产综合久久性色| 色婷婷av一区二区三区软件| 成人手机电影网| 成人理论电影网| 色综合久久中文综合久久97| 91看片淫黄大片一级| 日本久久电影网| 欧美日韩精品一区二区| 在线成人小视频| 欧美电影免费观看高清完整版在| 日韩女优电影在线观看| 国产色综合一区| 亚洲女子a中天字幕| 亚洲在线成人精品| 免费看日韩精品| 国产精品99久久久久久久女警| 成人午夜激情视频| 色哦色哦哦色天天综合| 日韩欧美一级片| 中文字幕制服丝袜成人av| 亚洲精品伦理在线| 亚洲午夜影视影院在线观看| 青青草91视频| 成人午夜av影视| 在线看不卡av| 91精品国产综合久久蜜臀| 日韩精品一区二区三区在线| 国产日韩欧美在线一区| 亚洲综合小说图片| 免费观看一级欧美片| 成人福利视频网站| 7777精品伊人久久久大香线蕉超级流畅 | 久久精品夜夜夜夜久久| 国产精品不卡在线| 麻豆精品在线播放| 91亚洲精华国产精华精华液| 91精品视频网| 一区二区三区在线视频观看58| 美美哒免费高清在线观看视频一区二区 | 91黄视频在线观看| 久久综合久久综合亚洲| 亚洲综合在线电影| 成人一二三区视频| 日韩情涩欧美日韩视频| 亚洲激情一二三区| 成人ar影院免费观看视频| 欧美一级电影网站| 亚洲一区二区三区视频在线播放| 国产大陆精品国产| 欧美一卡二卡三卡四卡| 亚洲精品视频免费观看| 福利电影一区二区三区| 日韩午夜av电影| 一级日本不卡的影视| 97精品视频在线观看自产线路二| www精品美女久久久tv| 日韩一区精品视频| 欧美日韩久久一区| 亚洲123区在线观看| 欧美三级乱人伦电影| 亚洲区小说区图片区qvod| 成人av电影在线| 欧美国产精品一区| 精品午夜久久福利影院| 欧美精品亚洲一区二区在线播放| 一区二区三区四区不卡视频| 99精品在线免费| 成人免费一区二区三区视频| 风间由美一区二区av101| 国产亚洲欧美激情| 国产精品综合在线视频| 欧美激情在线一区二区| 粉嫩一区二区三区性色av| 国产人成一区二区三区影院| 国产一区视频在线看| 久久影院午夜论| 国产一区二区视频在线| 亚洲国产经典视频| 成人av在线观| ...av二区三区久久精品| www.亚洲人| 一级做a爱片久久| 91精品国产综合久久久蜜臀粉嫩| 美女视频黄免费的久久 | 91一区一区三区| 亚洲精品国久久99热| 在线国产电影不卡| 亚洲国产人成综合网站| 日韩欧美国产综合| 国产成人亚洲精品青草天美| 国产精品不卡视频| 欧美手机在线视频| 精品影院一区二区久久久| 国产蜜臀97一区二区三区| 成人av电影观看| 五月综合激情婷婷六月色窝| 日韩女优制服丝袜电影| 成人av在线一区二区三区| 午夜精品一区二区三区免费视频| 欧美大片日本大片免费观看| 成人教育av在线| 日韩高清一级片| 国产精品美女久久久久久久久| 欧美伊人久久大香线蕉综合69| 另类综合日韩欧美亚洲| 中文一区在线播放| 欧美一区中文字幕| 99精品欧美一区二区三区小说| 亚洲国产精品麻豆| 国产欧美一区二区精品仙草咪| 欧美综合一区二区三区| 国产美女娇喘av呻吟久久| 亚洲国产日韩a在线播放| 国产亚洲成年网址在线观看| 欧美日韩免费视频| 成人免费黄色在线| 欧美aⅴ一区二区三区视频| 亚洲视频香蕉人妖| 久久久久亚洲综合| 制服.丝袜.亚洲.另类.中文| 一本色道久久综合精品竹菊 | 亚洲精品一区二区三区精华液 | 亚洲成人动漫一区| 久久精品亚洲精品国产欧美| 在线观看91av| 欧美日韩一区 二区 三区 久久精品| 国产成人午夜99999| 久久国产精品色| 日本美女一区二区| 亚洲一区二区三区三| 成人欧美一区二区三区1314 | 成人三级伦理片| 国产一区二区美女诱惑| 五月婷婷色综合| 一二三区精品视频| 最新欧美精品一区二区三区| 久久久久国产精品麻豆ai换脸 | 国产三级精品三级在线专区| 欧美高清激情brazzers| 欧美在线影院一区二区| 99久久精品一区二区| 国产不卡视频在线观看| 国产中文一区二区三区| 蜜臀99久久精品久久久久久软件| 亚洲成人在线网站| 图片区日韩欧美亚洲| 亚洲成人激情综合网| 婷婷综合在线观看| 日韩精品午夜视频| 免费成人在线观看视频| 日本va欧美va精品| 精品一区二区在线视频| 蜜臀av一区二区在线免费观看| 日韩电影在线观看电影| 久久精品国产久精国产| 韩国av一区二区三区在线观看| 国产一区二区三区电影在线观看| 国产一区二区中文字幕| 国产成人在线网站| 色悠久久久久综合欧美99| 在线观看国产一区二区| 91精品黄色片免费大全| 精品国产乱码久久久久久夜甘婷婷| 日韩欧美精品在线视频| 国产欧美精品在线观看| 亚洲日本青草视频在线怡红院| 一区二区三区日韩| 三级影片在线观看欧美日韩一区二区| 视频一区在线播放| 国产成人在线视频网站| 99精品欧美一区二区三区小说| 欧美视频日韩视频在线观看| 日韩精品中午字幕| 国产精品你懂的| 亚洲成人777| 国产suv精品一区二区883| 一本一道久久a久久精品综合蜜臀| 欧美精品1区2区| 中文字幕乱码久久午夜不卡| 亚洲国产日韩a在线播放性色| 黑人巨大精品欧美黑白配亚洲| 91视频在线观看免费| 欧美理论在线播放| 中文字幕欧美国产| 天堂va蜜桃一区二区三区| 成人午夜精品一区二区三区| 91久久免费观看| 久久久久久一二三区| 亚洲成人动漫精品| zzijzzij亚洲日本少妇熟睡| 91麻豆精品久久久久蜜臀| 亚洲色欲色欲www| 国产一区二区三区观看| 欧美日韩国产片| 中文字幕一区二区三区不卡在线| 麻豆视频一区二区|