home *** CD-ROM | disk | FTP | other *** search
/ Point Programming 1 / PPROG1.ISO / c / snippets / ll_que.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-13  |  2.1 KB  |  51 lines

  1. /* =======================================================================
  2.     LL_QUE.h        Generic Queues for fixed size data-items
  3.                     based on the LLS Singly Linked List module.
  4.  
  5.                     v0.51  94-08-20
  6.  
  7.                     Note that a LLS version with a 'last node pointer'
  8.                     has some performace advantages on 'putting'.
  9.                     Note that the List's current node pointer always is
  10.                     the same as its first node pointer.
  11.                     The ...Get... 'functions' cannot be used as parameters
  12.                     to other functions.
  13.  
  14.                     This module has no related .C file.
  15.  
  16.  _____              This version is Public Domain.
  17.  /_|__|             A.Reitsma, Delft, The Netherlands.
  18. /  | \  --------------------------------------------------------------- */
  19.  
  20. #include "lls.h"
  21.  
  22. #define LLQueCreate(itemsize)   LLScreate( itemsize )
  23. #define LLQueDelete(que)        LLSdelete( que )
  24.  
  25. #define LLQuePut(que,data)      LLSnodeAppend( que, data )
  26. #define LLQuePutFrom(que,src)   LLSnodeAppendFrom( que, src )
  27.  
  28. #define LLQueRepair(que)        LLSnodePtr2First( que )
  29.           /* For 'repair' purposes and also to check for an empty Queue */
  30.  
  31. /* ---- stored data management -------------------------------------------
  32.    return typed data:
  33. */
  34. #define LLQuePeekInt(que)       LLSnodeInt( que )
  35. #define LLQuePeekLong(que)      LLSnodeLong( que )
  36. #define LLQuePeekPtr(que)       LLSnodePtr( que )
  37. #define LLQuePeekFptr(que)      LLSnodeFptr( que )
  38.  
  39. #define LLQueGetInt(que)        LLSnodeInt( que ),  LLSnodeDelete( que )
  40. #define LLQueGetLong(que)       LLSnodeLong( que ), LLSnodeDelete( que )
  41. #define LLQueGetPtr(que)        LLSnodePtr( que ),  LLSnodeDelete( que )
  42. #define LLQueGetFptr(que)       LLSnodeFptr( que ), LLSnodeDelete( que )
  43.  
  44. /* 'return' typeless data.
  45. */
  46. #define LLQuePeekDataTo(que,dest)     LLSnodeDataTo( que, dest )
  47. #define LLQueGetDataTo(que,dest)      LLSnodeDataTo( que, dest ),        \
  48.                                         (dest ? LLSnodeDelete( que ): 0 )
  49.  
  50. /* ==== LL_QUE.h  end ================================================= */
  51.