CASA/LoginCapture/windows/external/xplatapi/include/nwdsfilt.h
2005-10-11 19:51:00 +00:00

152 lines
4.0 KiB
C

/******************************************************************************
%name: nwdsfilt.h %
%version: 1 %
%date_modified: Mon Aug 08 13:08:03 2005 %
$Copyright:
Copyright (c) 1989-1995 Novell, Inc. All Rights Reserved.
THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND
TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED
COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED,
EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED
WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION
OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO
CRIMINAL AND CIVIL LIABILITY.$
*****************************************************************************/
#if ! defined ( NWDSFILT_H )
#define NWDSFILT_H
#if ! defined ( NTYPES_H )
#include "ntypes.h"
#endif
#if ! defined ( NWDSTYPE_H )
#include "nwdstype.h"
#endif
#if ! defined ( NWDSDC_H ) /* Need to defined NWDSContextHandle */
#include "nwdsdc.h"
#endif
#if ! defined ( NWDSBUFT_H ) /* Needed to defined pBuf_T */
#include "nwdsbuft.h"
#endif
#include "npackon.h"
typedef struct _filter_node
{
struct _filter_node N_FAR *parent;
struct _filter_node N_FAR *left;
struct _filter_node N_FAR *right;
nptr value;
nuint32 syntax;
nuint16 token;
} Filter_Node_T, N_FAR *pFilter_Node_T;
#define FTOK_END 0
#define FTOK_OR 1
#define FTOK_AND 2
#define FTOK_NOT 3
#define FTOK_LPAREN 4
#define FTOK_RPAREN 5
#define FTOK_AVAL 6
#define FTOK_EQ 7
#define FTOK_GE 8
#define FTOK_LE 9
#define FTOK_APPROX 10
#define FTOK_ANAME 14
#define FTOK_PRESENT 15
#define FTOK_RDN 16
#define FTOK_BASECLS 17
#define FTOK_MODTIME 18
#define FTOK_VALTIME 19
#define FBIT_END (1L << FTOK_END)
#define FBIT_OR (1L << FTOK_OR)
#define FBIT_AND (1L << FTOK_AND)
#define FBIT_NOT (1L << FTOK_NOT)
#define FBIT_LPAREN (1L << FTOK_LPAREN)
#define FBIT_RPAREN (1L << FTOK_RPAREN)
#define FBIT_AVAL (1L << FTOK_AVAL)
#define FBIT_EQ (1L << FTOK_EQ)
#define FBIT_GE (1L << FTOK_GE)
#define FBIT_LE (1L << FTOK_LE)
#define FBIT_APPROX (1L << FTOK_APPROX)
#define FBIT_ANAME (1L << FTOK_ANAME)
#define FBIT_PRESENT (1L << FTOK_PRESENT)
#define FBIT_RDN (1L << FTOK_RDN)
#define FBIT_BASECLS (1L << FTOK_BASECLS)
#define FBIT_MODTIME (1L << FTOK_MODTIME)
#define FBIT_VALTIME (1L << FTOK_VALTIME)
#define FBIT_OPERAND (FBIT_LPAREN | FBIT_NOT | FBIT_PRESENT | FBIT_RDN \
| FBIT_BASECLS | FBIT_ANAME | FBIT_MODTIME | FBIT_VALTIME)
#define FBIT_RELOP (FBIT_EQ | FBIT_GE | FBIT_LE | FBIT_APPROX)
#define FBIT_BOOLOP (FBIT_AND | FBIT_OR)
typedef struct
{
pFilter_Node_T fn;
nuint16 level;
nuint32 expect;
} Filter_Cursor_T, N_FAR *pFilter_Cursor_T, N_FAR * N_FAR *ppFilter_Cursor_T;
#define FTAG_ITEM 0
#define FTAG_OR 1
#define FTAG_AND 2
#define FTAG_NOT 3
#ifdef __cplusplus
extern "C" {
#endif
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSAddFilterToken
(
pFilter_Cursor_T cur,
nuint16 tok,
nptr val,
nuint32 syntax
);
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSAllocFilter
(
ppFilter_Cursor_T cur
);
N_EXTERN_LIBRARY (void)
NWDSFreeFilter
(
pFilter_Cursor_T cur,
void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val)
);
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSPutFilter
(
NWDSContextHandle context,
pBuf_T buf,
pFilter_Cursor_T cur,
void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val)
);
N_EXTERN_LIBRARY (NWDSCCODE)
NWDSDelFilterToken
(
pFilter_Cursor_T cur,
void (N_FAR N_CDECL *freeVal)(nuint32 syntax, nptr val)
);
#ifdef __cplusplus
}
#endif
#include "npackoff.h"
#endif /* NWDSFILT_H */