/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* Copyright (C) 2001-2004 Novell, Inc. */ #ifndef __E2K_RESTRICTION_H__ #define __E2K_RESTRICTION_H__ #include "e2k-types.h" #ifdef __cplusplus extern "C" { #pragma } #endif /* __cplusplus */ typedef enum { E2K_RELOP_LT = 0, E2K_RELOP_LE = 1, E2K_RELOP_GT = 2, E2K_RELOP_GE = 3, E2K_RELOP_EQ = 4, E2K_RELOP_NE = 5, E2K_RELOP_RE = 6, E2K_RELOP_DL_MEMBER = 100 } E2kRestrictionRelop; typedef enum { E2K_BMR_EQZ = 0, E2K_BMR_NEZ = 1 } E2kRestrictionBitop; typedef enum { E2K_FL_FULLSTRING = 0x00000, E2K_FL_SUBSTRING = 0x00001, E2K_FL_PREFIX = 0x00002, E2K_FL_SUFFIX = 0x00003, /* Not a MAPI constant */ E2K_FL_IGNORECASE = 0x10000, E2K_FL_IGNORENONSPACE = 0x20000, E2K_FL_LOOSE = 0x40000 } E2kRestrictionFuzzyLevel; #define E2K_FL_MATCH_TYPE(fl) ((fl) & 0x3) E2kRestriction *e2k_restriction_and (int nrns, E2kRestriction **rns, gboolean unref); E2kRestriction *e2k_restriction_andv (E2kRestriction *rn, ...); E2kRestriction *e2k_restriction_or (int nrns, E2kRestriction **rns, gboolean unref); E2kRestriction *e2k_restriction_orv (E2kRestriction *rn, ...); E2kRestriction *e2k_restriction_not (E2kRestriction *rn, gboolean unref); E2kRestriction *e2k_restriction_content (const char *propname, E2kRestrictionFuzzyLevel fuzzy_level, const char *value); E2kRestriction *e2k_restriction_prop_bool (const char *propname, E2kRestrictionRelop relop, gboolean value); E2kRestriction *e2k_restriction_prop_int (const char *propname, E2kRestrictionRelop relop, int value); E2kRestriction *e2k_restriction_prop_date (const char *propname, E2kRestrictionRelop relop, const char *value); E2kRestriction *e2k_restriction_prop_string (const char *propname, E2kRestrictionRelop relop, const char *value); E2kRestriction *e2k_restriction_prop_binary (const char *propname, E2kRestrictionRelop relop, gconstpointer data, int len); E2kRestriction *e2k_restriction_compare (const char *propname1, E2kRestrictionRelop relop, const char *propname2); E2kRestriction *e2k_restriction_bitmask (const char *propname, E2kRestrictionBitop bitop, guint32 mask); E2kRestriction *e2k_restriction_size (const char *propname, E2kRestrictionRelop relop, guint32 size); E2kRestriction *e2k_restriction_exist (const char *propname); E2kRestriction *e2k_restriction_sub (const char *subtable, E2kRestriction *rn, gboolean unref); void e2k_restriction_ref (E2kRestriction *rn); void e2k_restriction_unref (E2kRestriction *rn); char *e2k_restriction_to_sql (E2kRestriction *rn); gboolean e2k_restriction_extract (guint8 **data, int *len, E2kRestriction **rn); void e2k_restriction_append (GByteArray *ba, E2kRestriction *rn); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __E2K_RESTRICTION_H__ */