⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listinfoframe.cpp

📁 MDF监控源码2
💻 CPP
字号:
#include "stdafx.h"
#include ".\listinfoframe.h"
#include <afxmt.h>			//CMutex
#include <afxdisp.h>

CListInfoFrame::CListInfoFrame(void)
{
	m_msgList.RemoveAll(); 
}

CListInfoFrame::~CListInfoFrame(void)
{
	m_msgList.RemoveAll();
}

// 得到数据包数量
long CListInfoFrame::GetCount(void)
{
	return m_msgList.GetCount();
}

// 增加一条消息到链表中
long CListInfoFrame::AddInfobody(CInfoFrame & m_pInfobody)
{
	BOOL blResult = FALSE;
	try
	{
		long lResult = 0;
		CMutex *m_mutex = new CMutex();
		blResult = m_mutex->Lock(1000);  
		if (blResult)
		{
			m_msgList.AddTail(m_pInfobody);
			lResult = m_msgList.GetCount();  	
			m_mutex->Unlock();  
		}

		delete m_mutex;
		return lResult;
	}
	catch(CMemoryException *e )
	{
		e->Delete(); 
		return -1;	 
	}
}

// 取得一个消息头,并删除该消息
CInfoFrame * CListInfoFrame::GetInfobodyHead(void)
{
	BOOL blResult = FALSE;
	CInfoFrame *m_msg;
	if (m_msgList.GetCount() <= 0  )
		return NULL;
	else
	{
		CMutex *m_mutex = new CMutex();
		blResult = m_mutex->Lock(2000);
		if (blResult)
		{
			m_msg = &(CInfoFrame)m_msgList.GetHead(); 	
			m_msgList.RemoveHead(); 
			m_mutex->Unlock();
		}
		delete m_mutex;
		return m_msg;
	}
}

// 通过ID来取得消息体
CInfoFrame * CListInfoFrame::GetInfobodyByID(long lID)
{
	CInfoFrame *m_msg;
	if (m_msgList.GetCount() <= 0  )
		return NULL;
	else
	{
		CMutex *m_mutex = new CMutex();
		m_mutex->Lock(2000);
		m_msg = &(CInfoFrame)m_msgList.GetAt((POSITION)lID) ; 	
		m_msgList.RemoveAt((POSITION)lID);
		m_mutex->Unlock();
		delete m_mutex;
		return m_msg;
	}

}


// 删除所有的消息体
bool CListInfoFrame::RemoveAll(void)
{
	m_msgList.RemoveAll();
	return true;
}



// 删除指定的消息体
bool CListInfoFrame::RemoveAt(long lID)
{
	try
	{
		if(m_msgList.GetCount() <=0 )
			return false;
		else
		{
			if (lID >0 && lID< m_msgList.GetCount())
			{
				m_msgList.RemoveAt((POSITION)lID); 
			}
			return true;
		}
	}
	catch(CMemoryException *e)
	{
		e->Delete();
		return false;
	
	}
}

⌨️ 快捷键说明

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