S3PList.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //-----------------------------------------//
  2. //                                         //
  3. //  File : S3PList.h    //
  4. // Author : Yang Xiaodong            //
  5. // Modified : 2/9/2002            //
  6. //                                         //
  7. //-----------------------------------------//
  8. #if !defined(AFX_S3PLIST_H__61BA3EE5_6CC2_4231_BEA3_147F54A54458__INCLUDED_)
  9. #define AFX_S3PLIST_H__61BA3EE5_6CC2_4231_BEA3_147F54A54458__INCLUDED_
  10. #include "KStdAfx.h"
  11. typedef BOOL ( CALLBACK *FREEDATAPROC )( DWORD );
  12. class S3PList  
  13. {
  14. typedef struct tag_S3PLISTNODE
  15. {
  16. DWORD data;
  17. struct tag_S3PLISTNODE* lpPrev;
  18. struct tag_S3PLISTNODE* lpNext;
  19. }_S3PLISTNODE, *_LPS3PLISTNODE;
  20. public:
  21. S3PList();
  22. virtual ~S3PList();
  23. virtual void NeedFreeData( FREEDATAPROC pFreeDataFun );
  24. virtual BOOL GetTail( DWORD& data );
  25. virtual BOOL GetHead( DWORD& data );
  26. virtual void RemoveAll();
  27. virtual void RemoveHead();
  28. virtual void RemoveTail();
  29. virtual BOOL AddHead( DWORD data );
  30. virtual BOOL AddTail( DWORD data );
  31. virtual BOOL IsEmpty();
  32. protected:
  33. virtual void Init();
  34. virtual BOOL FreeData( FREEDATAPROC pFreeDataFun, DWORD data );
  35. virtual void AddTail( _LPS3PLISTNODE lpNewTail );
  36. virtual void AddHead( _LPS3PLISTNODE lpNewHead );
  37. FREEDATAPROC m_pFreeDataFun;
  38. _LPS3PLISTNODE m_lpHead;
  39. _LPS3PLISTNODE m_lpTail;
  40. };
  41. #endif // !defined(AFX_S3PLIST_H__61BA3EE5_6CC2_4231_BEA3_147F54A54458__INCLUDED_)