home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / os232.exe / INCLUDE / NWDSFILT.H < prev    next >
C/C++ Source or Header  |  1995-05-10  |  4KB  |  147 lines

  1. /******************************************************************************
  2.  
  3.   $Workfile:   nwdsfilt.h  $
  4.   $Revision:   1.9  $
  5.   $Modtime::   10 May 1995 11:27:02                        $
  6.   $Copyright:
  7.  
  8.   Copyright (c) 1989-1995 Novell, Inc.  All Rights Reserved.                      
  9.  
  10.   THIS WORK IS  SUBJECT  TO  U.S.  AND  INTERNATIONAL  COPYRIGHT  LAWS  AND
  11.   TREATIES.   NO  PART  OF  THIS  WORK MAY BE  USED,  PRACTICED,  PERFORMED
  12.   COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED,  ABRIDGED, CONDENSED,
  13.   EXPANDED,  COLLECTED,  COMPILED,  LINKED,  RECAST, TRANSFORMED OR ADAPTED
  14.   WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION
  15.   OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO
  16.   CRIMINAL AND CIVIL LIABILITY.$
  17.  
  18.  *****************************************************************************/
  19. #if ! defined ( NWDSFILT_H )
  20. #define NWDSFILT_H
  21.  
  22. #if ! defined ( NTYPES_H )
  23. #include "ntypes.h"
  24. #endif
  25.  
  26. #if ! defined ( NWDSTYPE_H )
  27. #include "nwdstype.h"
  28. #endif
  29.  
  30. #if ! defined ( NWDSDC_H )   /* Need to defined NWDSContextHandle */
  31. #include "nwdsdc.h"
  32. #endif
  33.  
  34. #if ! defined ( NWDSBUFT_H ) /* Needed to defined pBuf_T   */
  35. #include "nwdsbuft.h"
  36. #endif
  37.  
  38. #include "npackon.h"
  39.  
  40. typedef struct _filter_node
  41. {
  42.    struct _filter_node  N_FAR *parent;
  43.    struct _filter_node  N_FAR *left;
  44.    struct _filter_node  N_FAR *right;
  45.    nptr                       value;
  46.    nuint32                    syntax;
  47.    nuint16                    token;
  48. } Filter_Node_T, N_FAR *pFilter_Node_T;
  49.  
  50. #define FTOK_END     0
  51. #define FTOK_OR      1
  52. #define FTOK_AND     2
  53. #define FTOK_NOT     3
  54. #define FTOK_LPAREN  4
  55. #define FTOK_RPAREN  5
  56. #define FTOK_AVAL    6
  57. #define FTOK_EQ      7
  58. #define FTOK_GE      8
  59. #define FTOK_LE      9
  60. #define FTOK_APPROX  10
  61. #define FTOK_ANAME   14
  62. #define FTOK_PRESENT 15
  63. #define FTOK_RDN     16
  64. #define FTOK_BASECLS 17
  65. #define FTOK_MODTIME 18
  66. #define FTOK_VALTIME 19
  67.  
  68. #define FBIT_END     (1L << FTOK_END)
  69. #define FBIT_OR      (1L << FTOK_OR)
  70. #define FBIT_AND     (1L << FTOK_AND)
  71. #define FBIT_NOT     (1L << FTOK_NOT)
  72. #define FBIT_LPAREN  (1L << FTOK_LPAREN)
  73. #define FBIT_RPAREN  (1L << FTOK_RPAREN)
  74. #define FBIT_AVAL    (1L << FTOK_AVAL)
  75. #define FBIT_EQ      (1L << FTOK_EQ)
  76. #define FBIT_GE      (1L << FTOK_GE)
  77. #define FBIT_LE      (1L << FTOK_LE)
  78. #define FBIT_APPROX  (1L << FTOK_APPROX)
  79. #define FBIT_ANAME   (1L << FTOK_ANAME)
  80. #define FBIT_PRESENT (1L << FTOK_PRESENT)
  81. #define FBIT_RDN     (1L << FTOK_RDN)
  82. #define FBIT_BASECLS (1L << FTOK_BASECLS)
  83. #define FBIT_MODTIME (1L << FTOK_MODTIME)
  84. #define FBIT_VALTIME (1L << FTOK_VALTIME)
  85.  
  86. #define FBIT_OPERAND (FBIT_LPAREN | FBIT_NOT | FBIT_PRESENT | FBIT_RDN \
  87.          | FBIT_BASECLS | FBIT_ANAME | FBIT_MODTIME | FBIT_VALTIME)
  88. #define FBIT_RELOP   (FBIT_EQ | FBIT_GE | FBIT_LE | FBIT_APPROX)
  89. #define FBIT_BOOLOP  (FBIT_AND | FBIT_OR)
  90.  
  91. typedef struct
  92. {
  93.    pFilter_Node_T fn;
  94.    nuint16        level;
  95.    nuint32        expect;
  96. } Filter_Cursor_T, N_FAR *pFilter_Cursor_T, N_FAR * N_FAR *ppFilter_Cursor_T;
  97.  
  98. #define FTAG_ITEM    0
  99. #define FTAG_OR      1
  100. #define FTAG_AND     2
  101. #define FTAG_NOT     3
  102.  
  103.  
  104. #ifdef __cplusplus
  105.    extern "C" {
  106. #endif
  107.  
  108. NWDSCCODE N_API NWDSAddFilterToken
  109. (
  110.    pFilter_Cursor_T  cur,
  111.    nuint16           tok,
  112.    nptr              val,
  113.    nuint32           syntax
  114. );
  115.  
  116. NWDSCCODE N_API NWDSAllocFilter
  117. (
  118.    ppFilter_Cursor_T cur
  119. );
  120.  
  121. void N_API NWDSFreeFilter
  122. (
  123.    pFilter_Cursor_T  cur,
  124.    void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val)
  125. );
  126.  
  127. NWDSCCODE N_API NWDSPutFilter
  128. (
  129.    NWDSContextHandle       context,
  130.    pBuf_T                  buf,
  131.    pFilter_Cursor_T        cur,
  132.    void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val)
  133. );
  134.  
  135. NWDSCCODE N_API NWDSDelFilterToken
  136. (
  137.    pFilter_Cursor_T  cur,
  138.    void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val)
  139. );
  140.  
  141. #ifdef __cplusplus
  142.    }
  143. #endif
  144.  
  145. #include "npackoff.h"
  146. #endif   /* NWDSFILT_H */
  147.