1 /* $NetBSD: LDAPSchema.h,v 1.1.1.2 2010/03/08 02:14:20 lukem Exp $ */ 2 3 // OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPSchema.h,v 1.1.8.2 2008/04/14 23:09:26 quanah Exp 4 /* 5 * Copyright 2003, OpenLDAP Foundation, All Rights Reserved. 6 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 7 */ 8 9 #ifndef LDAP_SCHEMA_H 10 #define LDAP_SCHEMA_H 11 12 #include <string> 13 #include <map> 14 15 #include "LDAPObjClass.h" 16 #include "LDAPAttrType.h" 17 18 /** 19 * Represents the LDAP schema 20 */ 21 class LDAPSchema{ 22 private : 23 /** 24 * map of object classes: index is name, value is LDAPObjClass object 25 */ 26 map <string, LDAPObjClass> object_classes; 27 28 /** 29 * map of attribute types: index is name, value is LDAPAttrType object 30 */ 31 map <string, LDAPAttrType> attr_types; 32 33 public : 34 35 /** 36 * Constructs an empty object 37 */ 38 LDAPSchema(); 39 40 /** 41 * Destructor 42 */ 43 virtual ~LDAPSchema(); 44 45 /** 46 * Fill the object_classes map 47 * @param oc description of one objectclass (string returned by search 48 * command), in form: 49 * "( 1.2.3.4.5 NAME '<name>' SUP <supname> STRUCTURAL 50 * DESC '<description>' MUST ( <attrtype> ) MAY ( <attrtype> ))" 51 */ 52 void setObjectClasses (const StringList &oc); 53 54 /** 55 * Fill the attr_types map 56 * @param at description of one attribute type 57 * (string returned by search command), in form: 58 * "( 1.2.3.4.6 NAME ( '<name>' ) DESC '<desc>' 59 * EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )" 60 */ 61 void setAttributeTypes (const StringList &at); 62 63 /** 64 * Returns object class object with given name 65 */ 66 LDAPObjClass getObjectClassByName (std::string name); 67 68 /** 69 * Returns attribute type object with given name 70 */ 71 LDAPAttrType getAttributeTypeByName (string name); 72 73 }; 74 75 #endif // LDAP_SCHEMA_H 76