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

📄 datacenter.h

📁 COM 组建的开发
💻 H
字号:
// DataCenter.h: interface for the CDataCenter class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DATACENTER_H__6A618486_FC81_4049_A81F_CF3F4CCE949E__INCLUDED_)
#define AFX_DATACENTER_H__6A618486_FC81_4049_A81F_CF3F4CCE949E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define OUT_TIME	500
// JDIOInter COM组件通用数据结构
/////////////////////////////////////////////////////////////////////

struct ST_IODATATYPE
{
	int nDesModID;           // 目标模块的编号
	int nSrcModID;           // 源模块的编号

	WORD wDataType;          // 数据类型

	long lParam1;            // 参数1
	long lParam2;            // 参数2  (保留)
};

typedef struct
{
	DWORD dwSize;             // 数据长度           
	BYTE *pData;              // 数据指针

}ST_IODATA; 

/////////////////////////////////////////////////////////////////////
// GetPacket, SetPacket队列数据结构
/////////////////////////////////////////////////////////////////////

typedef struct
{
	ST_IODATATYPE stType;

	DWORD dwSize;
	BYTE *pData;
	
}ST_IOITEM;
/////////////////////////////////////////////////////////////////////
class CDataCenter  
{
public:
	CDataCenter();
	virtual ~CDataCenter();
// public attribute
public:

// public method
public:
	
	void AddSetPacket(ST_IOITEM ioItem);// 向队列中添加一个带处理数据 [5/12/2008 By willing]
	void AddGetPacket(ST_IOITEM ioItem);// 向队列中添加一个带处理数据 [5/12/2008 By willing]

	int	 GetSetLstHead(ST_IOITEM &IOItem);// 从Set列表的头部获取一个元素 [5/12/2008 By willing]
	int	 GetGetLstHead(long *pDataType, long *pData, long *pSize);// 从Get列表的头部获取一个元素 [5/12/2008 By willing]
	
	void ClearSetList();// 清空Set队列 [5/12/2008 By willing]
	void ClearGetList();// 清空Get队列 [5/12/2008 By willing]
protected:
	int LockSet();// 对Set链表进行加锁 [5/12/2008 By willing]
	void UnlockSet();// 对Set链表进行解锁 [5/12/2008 By willing]
	int LockGet();// 对Get链表进行加锁 [5/12/2008 By willing]
	void UnlockGet();// 对Set链表进行解锁 [5/12/2008 By willing]
// private attribute
private:
	CList<ST_IOITEM, ST_IOITEM> m_lstGetPacket;         // GetPacket队列
	CList<ST_IOITEM, ST_IOITEM> m_lstSetPacket;         // SetPacket队列
	HANDLE m_handleGet;									// Get队列锁句柄 [5/12/2008 By willing]
	HANDLE m_handleSet;									// Set队列锁句柄 [5/12/2008 By willing]
// private method
private:

};
extern CDataCenter _DataCenter;

#endif // !defined(AFX_DATACENTER_H__6A618486_FC81_4049_A81F_CF3F4CCE949E__INCLUDED_)

⌨️ 快捷键说明

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