home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / postgres / postgre3.z / postgre3 / src / lib / H / utils / linval.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-27  |  1.3 KB  |  63 lines

  1. /*
  2.  * linval.h --
  3.  *    POSTGRES local cache invalidation definitions.
  4.  *
  5.  * Identification:
  6.  *    $Header: /private/postgres/src/lib/H/utils/RCS/linval.h,v 1.6 1990/08/18 00:40:58 cimarron Exp $
  7.  */
  8.  
  9. #ifndef    LInvalIncluded    /* Include this file only once */
  10. #define LInvalIncluded    1
  11.  
  12. #include "tmp/postgres.h"
  13.  
  14. typedef struct InvalidationUserData {
  15.     struct InvalidationUserData    *dataP[1];    /* VARIABLE LENGTH */
  16. } InvalidationUserData;    /* VARIABLE LENGTH STRUCTURE */
  17.  
  18. typedef struct InvalidationEntryData {
  19.     InvalidationUserData    *nextP;
  20.     InvalidationUserData    userData;    /* VARIABLE LENGTH ARRAY */
  21. } InvalidationEntryData;    /* VARIABLE LENGTH STRUCTURE */
  22.  
  23. typedef Pointer InvalidationEntry;
  24.  
  25. typedef InvalidationEntry    LocalInvalid;
  26.  
  27. #define EmptyLocalInvalid    NULL
  28.  
  29. /*
  30.  * InvalididationEntryAllocate --
  31.  *    Allocates an invalidation entry.
  32.  */
  33. InvalidationEntry
  34. InvalidationEntryAllocate ARGS((
  35.     uint16    size
  36. ));
  37.  
  38. /*
  39.  * LocalInvalidRegister --
  40.  *    Returns a new local cache invalidation state containing a new entry.
  41.  */
  42. extern
  43. LocalInvalid
  44. LocalInvalidRegister ARGS((
  45.     LocalInvalid        invalid,
  46.     InvalidationEntry    entry
  47. ));
  48.  
  49. /*
  50.  * LocalInvalidInvalidate --
  51.  *    Processes, then frees all entries in a local cache invalidation state.
  52.  */
  53. extern
  54. void
  55. LocalInvalidInvalidate ARGS((
  56.     LocalInvalid    invalid,
  57.     void        (*function)(
  58.         InvalidationEntry    entry
  59.     )
  60. ));
  61.  
  62. #endif    /* !defined(LInvalIncluded) */
  63.