📄 datacenter.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 + -