1 /* $NetBSD: LDAPObjClass.h,v 1.1.1.2 2010/03/08 02:14:20 lukem Exp $ */ 2 3 // OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPObjClass.h,v 1.3.6.3 2008/09/02 23:58:15 quanah Exp 4 /* 5 * Copyright 2003, OpenLDAP Foundation, All Rights Reserved. 6 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 7 */ 8 9 #ifndef LDAP_OBJCLASS_H 10 #define LDAP_OBJCLASS_H 11 12 #include <ldap_schema.h> 13 #include <string> 14 15 #include "StringList.h" 16 17 using namespace std; 18 19 /** 20 * Represents the Object Class (from LDAP schema) 21 */ 22 class LDAPObjClass{ 23 private : 24 StringList names, must, may, sup; 25 string desc, oid; 26 int kind; 27 28 public : 29 30 /** 31 * Constructs an empty object. 32 */ 33 LDAPObjClass(); 34 35 /** 36 * Copy constructor 37 */ 38 LDAPObjClass( const LDAPObjClass& oc ); 39 40 /** 41 * Constructs new object and fills the data structure by parsing the 42 * argument. 43 * @param oc_item description of object class is string returned 44 * by the search command. It is in the form: 45 * "( SuSE.YaST.OC:5 NAME 'userTemplate' SUP objectTemplate STRUCTURAL 46 * DESC 'User object template' MUST ( cn ) MAY ( secondaryGroup ))" 47 */ 48 LDAPObjClass (string oc_item, int flags = LDAP_SCHEMA_ALLOW_NO_OID | 49 LDAP_SCHEMA_ALLOW_QUOTED); 50 51 /** 52 * Destructor 53 */ 54 virtual ~LDAPObjClass(); 55 56 /** 57 * Returns object class description 58 */ 59 string getDesc() const; 60 61 /** 62 * Returns object class oid 63 */ 64 string getOid() const; 65 66 /** 67 * Returns object class name (first one if there are more of them) 68 */ 69 string getName() const; 70 71 /** 72 * Returns object class kind: 0=ABSTRACT, 1=STRUCTURAL, 2=AUXILIARY 73 */ 74 int getKind() const; 75 76 /** 77 * Returns all object class names 78 */ 79 StringList getNames() const; 80 81 /** 82 * Returns list of required attributes 83 */ 84 StringList getMust() const; 85 86 /** 87 * Returns list of allowed (and not required) attributes 88 */ 89 StringList getMay() const; 90 91 /** 92 * Returns list of the OIDs of the superior ObjectClasses 93 */ 94 StringList getSup() const; 95 96 void setNames (char **oc_names); 97 void setMay (char **oc_may); 98 void setMust (char **oc_must); 99 void setDesc (char *oc_desc); 100 void setOid (char *oc_oid); 101 void setKind (int oc_kind); 102 void setSup (char **oc_sup); 103 104 }; 105 106 #endif // LDAP_OBJCLASS_H 107