You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.5 KiB
C

//////////////////////////////////////////////////////////////////////
#if !defined(_CHAINLIST_H_AAAWEN_200505271056__INCLUDED_)
#define _CHAINLIST_H_AAAWEN_200505271056__INCLUDED_
#include "basetype.h"
// 单向链表
typedef struct tagSINGLELISTUNIT
{
int iLen; // 数据长度
BYTE *pBuf; // 存储内容
struct tagSINGLELISTUNIT *pNext; // 单项链表的下一个
}SINGLELISTUNIT;
typedef struct tagSINGLELIST
{
int iDevId; // 端口号(高2个字节为端口号, 低2个字节为装置号)
int iNum;
int iMaxNum;
SINGLELISTUNIT *pHead;
SINGLELISTUNIT *pTail;
}SINGLELIST;
typedef struct tagDOUBLELISTUNIT
{
int iDataLen; // 数据长度
BYTE *pDataBuf; // 存储内容
struct tagDOUBLELISTUNIT *pNext; // 双向链表的下一个
struct tagDOUBLELISTUNIT *pFore; // 双向链表的前一个
}DOUBLELISTUNIT;
typedef struct tagDOUBLELIST
{
int iNum;
int iMaxNum;
DOUBLELISTUNIT *pHead;
DOUBLELISTUNIT *pTail;
}DOUBLELIST;
// SingleList
DSLIB_API void SingleListInit(SINGLELIST *psSingleList, int iMaxNum);
DSLIB_API void SingleListInitEx(SINGLELIST *psSingleList, int iMaxNum, int iDevId);
DSLIB_API int SingleListHaveData(SINGLELIST *psSingleList);
DSLIB_API BOOL SingleListAddData(SINGLELIST *psSingleList, BYTE *pu8Data, int iDataLen);
DSLIB_API int SingleListGetAndDelData(SINGLELIST *psSingleList, BYTE *pu8Data, int iMaxLen);
DSLIB_API BOOL SingleListDelData(SINGLELIST *psSingleList);
DSLIB_API BOOL SingleListDelAllData(SINGLELIST *psSingleList);
#endif // !defined(_CHAINLIST_H_AAAWEN_200505271056__INCLUDED_)