home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ldapsdk.zip / include / ldap_schema.h < prev    next >
C/C++ Source or Header  |  2001-09-19  |  5KB  |  196 lines

  1. /* $OpenLDAP: pkg/ldap/include/ldap_schema.h,v 1.10.6.7 2001/09/18 18:38:15 kurt Exp $ */
  2. /*
  3.  * Copyright 1998-2001 The OpenLDAP Foundation, Redwood City, California, USA
  4.  * All rights reserved.
  5.  *
  6.  * Redistribution and use in source and binary forms, with or without
  7.  * modification, are permitted only as authorized by the OpenLDAP
  8.  * Public License.  A copy of this license is available at
  9.  * http://www.OpenLDAP.org/license.html or in file LICENSE in the
  10.  * top-level directory of the distribution.
  11.  */
  12. /*
  13.  * ldap-schema.h - Header for basic schema handling functions that can be
  14.  *        used by both clients and servers.
  15.  */
  16.  
  17. #ifndef _LDAP_SCHEMA_H
  18. #define _LDAP_SCHEMA_H 1
  19.  
  20. #include <ldap_cdefs.h>
  21.  
  22. LDAP_BEGIN_DECL
  23.  
  24. /* Codes for parsing errors */
  25.  
  26. #define LDAP_SCHERR_OUTOFMEM        1
  27. #define LDAP_SCHERR_UNEXPTOKEN        2
  28. #define LDAP_SCHERR_NOLEFTPAREN        3
  29. #define LDAP_SCHERR_NORIGHTPAREN    4
  30. #define LDAP_SCHERR_NODIGIT        5
  31. #define LDAP_SCHERR_BADNAME        6
  32. #define LDAP_SCHERR_BADDESC        7
  33. #define LDAP_SCHERR_BADSUP        8
  34. #define LDAP_SCHERR_DUPOPT        9
  35. #define LDAP_SCHERR_EMPTY        10
  36.  
  37. typedef struct ldap_schema_extension_item {
  38.     char *lsei_name;
  39.     char **lsei_values;
  40. } LDAPSchemaExtensionItem;
  41.  
  42. typedef struct ldap_syntax {
  43.     char *syn_oid;        /* REQUIRED */
  44.     char **syn_names;    /* OPTIONAL */
  45.     char *syn_desc;        /* OPTIONAL */
  46.     LDAPSchemaExtensionItem **syn_extensions; /* OPTIONAL */
  47. } LDAPSyntax;
  48.  
  49. typedef struct ldap_matchingrule {
  50.     char *mr_oid;        /* REQUIRED */
  51.     char **mr_names;    /* OPTIONAL */
  52.     char *mr_desc;        /* OPTIONAL */
  53.     int  mr_obsolete;    /* OPTIONAL */
  54.     char *mr_syntax_oid;    /* REQUIRED */
  55.     LDAPSchemaExtensionItem **mr_extensions; /* OPTIONAL */
  56. } LDAPMatchingRule;
  57.  
  58. typedef struct ldap_attributetype {
  59.     char *at_oid;        /* REQUIRED */
  60.     char **at_names;    /* OPTIONAL */
  61.     char *at_desc;        /* OPTIONAL */
  62.     int  at_obsolete;    /* 0=no, 1=yes */
  63.     char *at_sup_oid;    /* OPTIONAL */
  64.     char *at_equality_oid;    /* OPTIONAL */
  65.     char *at_ordering_oid;    /* OPTIONAL */
  66.     char *at_substr_oid;    /* OPTIONAL */
  67.     char *at_syntax_oid;    /* OPTIONAL */
  68.     int  at_syntax_len;    /* OPTIONAL */
  69.     int  at_single_value;    /* 0=no, 1=yes */
  70.     int  at_collective;    /* 0=no, 1=yes */
  71.     int  at_no_user_mod;    /* 0=no, 1=yes */
  72.     int  at_usage;        /* 0=userApplications, 1=directoryOperation,
  73.                    2=distributedOperation, 3=dSAOperation */
  74.     LDAPSchemaExtensionItem **at_extensions; /* OPTIONAL */
  75. } LDAPAttributeType;
  76.  
  77. typedef struct ldap_objectclass {
  78.     char *oc_oid;        /* REQUIRED */
  79.     char **oc_names;    /* OPTIONAL */
  80.     char *oc_desc;        /* OPTIONAL */
  81.     int  oc_obsolete;    /* 0=no, 1=yes */
  82.     char **oc_sup_oids;    /* OPTIONAL */
  83.     int  oc_kind;        /* 0=ABSTRACT, 1=STRUCTURAL, 2=AUXILIARY */
  84.     char **oc_at_oids_must;    /* OPTIONAL */
  85.     char **oc_at_oids_may;    /* OPTIONAL */
  86.     LDAPSchemaExtensionItem **oc_extensions; /* OPTIONAL */
  87. } LDAPObjectClass;
  88.  
  89. #define LDAP_SCHEMA_NO                0
  90. #define LDAP_SCHEMA_YES                1
  91.  
  92. #define LDAP_SCHEMA_USER_APPLICATIONS        0
  93. #define LDAP_SCHEMA_DIRECTORY_OPERATION        1
  94. #define LDAP_SCHEMA_DISTRIBUTED_OPERATION    2
  95. #define LDAP_SCHEMA_DSA_OPERATION        3
  96.  
  97. #define LDAP_SCHEMA_ABSTRACT            0
  98. #define LDAP_SCHEMA_STRUCTURAL            1
  99. #define LDAP_SCHEMA_AUXILIARY            2
  100.  
  101. /*
  102.  * Flags that control how liberal the parsing routines are.
  103.  */
  104. #define LDAP_SCHEMA_ALLOW_NONE        0x00 /* Strict parsing               */
  105. #define LDAP_SCHEMA_ALLOW_NO_OID    0x01 /* Allow missing oid            */
  106. #define LDAP_SCHEMA_ALLOW_QUOTED    0x02 /* Allow bogus extra quotes     */
  107. #define LDAP_SCHEMA_ALLOW_DESCR        0x04 /* Allow descr instead of OID   */
  108. #define LDAP_SCHEMA_ALLOW_DESCR_PREFIX    0x08 /* Allow descr as OID prefix    */
  109. #define LDAP_SCHEMA_ALLOW_OID_MACRO    0x10 /* Allow OID macros in slapd    */
  110. #define LDAP_SCHEMA_ALLOW_ALL        0x1f /* Be very liberal in parsing   */
  111.  
  112. LDAP_F( LDAP_CONST char * )
  113. ldap_syntax2name LDAP_P((
  114.     LDAPSyntax * syn ));
  115.  
  116. LDAP_F( LDAP_CONST char * )
  117. ldap_matchingrule2name LDAP_P((
  118.     LDAPMatchingRule * mr ));
  119.  
  120. LDAP_F( LDAP_CONST char * )
  121. ldap_attributetype2name LDAP_P((
  122.     LDAPAttributeType * at ));
  123.  
  124. LDAP_F( LDAP_CONST char * )
  125. ldap_objectclass2name LDAP_P((
  126.     LDAPObjectClass * oc ));
  127.  
  128. LDAP_F( void )
  129. ldap_syntax_free LDAP_P((
  130.     LDAPSyntax * syn ));
  131.  
  132. LDAP_F( void )
  133. ldap_matchingrule_free LDAP_P((
  134.     LDAPMatchingRule * mr ));
  135.  
  136. LDAP_F( void )
  137. ldap_attributetype_free LDAP_P((
  138.     LDAPAttributeType * at ));
  139.  
  140. LDAP_F( void )
  141. ldap_objectclass_free LDAP_P((
  142.     LDAPObjectClass * oc ));
  143.  
  144. LDAP_F( LDAPObjectClass * )
  145. ldap_str2objectclass LDAP_P((
  146.     LDAP_CONST char * s,
  147.     int * code,
  148.     LDAP_CONST char ** errp,
  149.     LDAP_CONST int flags ));
  150.  
  151. LDAP_F( LDAPAttributeType * )
  152. ldap_str2attributetype LDAP_P((
  153.     LDAP_CONST char * s,
  154.     int * code,
  155.     LDAP_CONST char ** errp,
  156.     LDAP_CONST int flags ));
  157.  
  158. LDAP_F( LDAPSyntax * )
  159. ldap_str2syntax LDAP_P((
  160.     LDAP_CONST char * s,
  161.     int * code,
  162.     LDAP_CONST char ** errp,
  163.     LDAP_CONST int flags ));
  164.  
  165. LDAP_F( LDAPMatchingRule * )
  166. ldap_str2matchingrule LDAP_P((
  167.     LDAP_CONST char * s,
  168.     int * code,
  169.     LDAP_CONST char ** errp,
  170.     LDAP_CONST int flags ));
  171.  
  172. LDAP_F( char * )
  173. ldap_objectclass2str LDAP_P((
  174.     LDAP_CONST LDAPObjectClass * oc ));
  175.  
  176. LDAP_F( char * )
  177. ldap_attributetype2str LDAP_P((
  178.     LDAP_CONST LDAPAttributeType * at ));
  179.  
  180. LDAP_F( char * )
  181. ldap_syntax2str LDAP_P((
  182.     LDAP_CONST LDAPSyntax * syn ));
  183.  
  184. LDAP_F( char * )
  185. ldap_matchingrule2str LDAP_P((
  186.     LDAP_CONST LDAPMatchingRule * mr ));
  187.  
  188. LDAP_F( char * )
  189. ldap_scherr2str LDAP_P((
  190.     int code )) LDAP_GCCATTR((const));
  191.  
  192. LDAP_END_DECL
  193.  
  194. #endif
  195.  
  196.