datacenter.h

来自「COM 组建的开发」· C头文件 代码 · 共 83 行

H
83
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?