home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / LL_QUE.H < prev    next >
C/C++ Source or Header  |  1997-07-05  |  2KB  |  57 lines

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