////////////////////////////////////////////////////////////////////// #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_)