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

模拟服务器

开发平台:

C/C++

  1. //=============================================================================
  2. //  Microsoft (R) Bloodhound (tm). Copyright (C) 1991 - 1999.
  3. //
  4. //  MODULE: queue.h
  5. //
  6. //  Modification History
  7. //
  8. //  raypa           03/17/93    Created.
  9. //=============================================================================
  10. #if !defined(_QUEUE_)
  11. #include "list.h"
  12. #define _QUEUE_
  13. #pragma pack(1)
  14. //=============================================================================
  15. //  Macros.
  16. //=============================================================================
  17. typedef LIST QUEUE;                         //... Queue is a special list.
  18. typedef QUEUE *LPQUEUE;
  19. //=============================================================================
  20. //  Macros.
  21. //=============================================================================
  22. #ifndef NO_INLINE
  23. #define GetQueueHead(Queue)                 ((LPVOID) (((LPQUEUE) (Queue))->Head))
  24. #define GetQueueTail(Queue)                 ((LPVOID) (((LPQUEUE) (Queue))->Tail))
  25. #define GetQueueLength(Queue)               (((LPQUEUE) (Queue))->Length)
  26. #define AddToFrontOfList(List, Link)        AddToList((List), NULL, (Link))
  27. #define AddToEndOfList(List, Link)          AddToList((List), (Link), NULL)
  28. #define DeleteFromFrontOfList(List)         DeleteFromList((List), GetHeadOfList(List))
  29. #define DeleteFromEndOfList(List)           DeleteFromList((List), GetTailOfList(List))
  30. #define InitializeQueue(Queue)              InitializeList(Queue)
  31. #define Enqueue(Queue, Link)                AddToEndOfList(Queue, Link)
  32. #define Requeue(Queue, Link)                AddToFrontOfList(Queue, Link)
  33. #define Dequeue(Queue)                      ((LPVOID) DeleteFromFrontOfList(Queue))
  34. #endif
  35. #pragma pack()
  36. #endif