]> git.sur5r.net Git - openldap/commitdiff
Added utility classes for Schema parsing
authorRalf Haferkamp <ralf@openldap.org>
Tue, 24 Jun 2003 18:05:03 +0000 (18:05 +0000)
committerRalf Haferkamp <ralf@openldap.org>
Tue, 24 Jun 2003 18:05:03 +0000 (18:05 +0000)
contrib/ldapc++/src/LDAPAttrType.cpp [new file with mode: 0644]
contrib/ldapc++/src/LDAPAttrType.h [new file with mode: 0644]
contrib/ldapc++/src/LDAPObjClass.cpp [new file with mode: 0644]
contrib/ldapc++/src/LDAPObjClass.h [new file with mode: 0644]
contrib/ldapc++/src/LDAPSchema.cpp [new file with mode: 0644]
contrib/ldapc++/src/LDAPSchema.h [new file with mode: 0644]
contrib/ldapc++/src/Makefile.am
contrib/ldapc++/src/Makefile.in

diff --git a/contrib/ldapc++/src/LDAPAttrType.cpp b/contrib/ldapc++/src/LDAPAttrType.cpp
new file mode 100644 (file)
index 0000000..121f9b6
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2003, OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
+
+#include "debug.h"
+#include "LDAPAttrType.h"
+
+
+LDAPAttrType::LDAPAttrType(){
+    DEBUG(LDAP_DEBUG_CONSTRUCT,
+            "LDAPAttrType::LDAPAttrType( )" << endl);
+
+    oid = string ();
+    desc = string ();
+    names = StringList ();
+    single = false;
+}
+
+LDAPAttrType::LDAPAttrType (const LDAPAttrType &at){
+    DEBUG(LDAP_DEBUG_CONSTRUCT,
+            "LDAPAttrType::LDAPAttrType( )" << endl);
+
+    oid = at.oid;
+    desc = at.desc;
+    names = at.names;
+    single = at.single;
+}
+
+LDAPAttrType::LDAPAttrType (string at_item) { 
+
+    DEBUG(LDAP_DEBUG_CONSTRUCT,
+            "LDAPAttrType::LDAPAttrType( )" << endl);
+
+    LDAPAttributeType *a;
+    int ret;
+    const char *errp;
+    a = ldap_str2attributetype (at_item.c_str(), &ret, &errp,SCHEMA_PARSE_FLAG);
+
+    if (a) {
+       this->setNames (a->at_names);
+       this->setDesc (a->at_desc);
+       this->setOid (a->at_oid);
+       this->setSingle (a->at_single_value);
+    }
+    // else? -> error
+}
+
+LDAPAttrType::~LDAPAttrType() {
+    DEBUG(LDAP_DEBUG_DESTROY,"LDAPAttrType::~LDAPAttrType()" << endl);
+}
+
+void LDAPAttrType::setSingle (int at_single) {
+    single = (at_single == 1);
+}
+    
+void LDAPAttrType::setNames (char **at_names) {
+    names = StringList (at_names);
+}
+
+void LDAPAttrType::setDesc (char *at_desc) {
+    desc = string ();
+    if (at_desc)
+       desc = at_desc;
+}
+
+void LDAPAttrType::setOid (char *at_oid) {
+    oid = string ();
+    if (at_oid)
+       oid = at_oid;
+}
+
+bool LDAPAttrType::isSingle () {
+    return single;
+}
+
+string LDAPAttrType::getOid () {
+    return oid;
+}
+
+string LDAPAttrType::getDesc () {
+    return desc;
+}
+
+StringList LDAPAttrType::getNames () {
+    return names;
+}
+
+string LDAPAttrType::getName () {
+
+    if (names.empty())
+       return "";
+    else
+       return *(names.begin());
+}
diff --git a/contrib/ldapc++/src/LDAPAttrType.h b/contrib/ldapc++/src/LDAPAttrType.h
new file mode 100644 (file)
index 0000000..3042ab5
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2003, OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
+
+#ifndef LDAP_ATTRTYPE_H
+#define LDAP_ATTRTYPE_H
+
+#include <ldap_schema.h>
+#include <string>
+
+#include "StringList.h"
+
+#define SCHEMA_PARSE_FLAG    0x03
+
+
+using namespace std;
+
+/**
+ * Represents the Attribute Type (from LDAP schema)
+ */
+class LDAPAttrType{
+    private :
+       StringList names;
+       string desc, oid;
+       bool single;
+       
+    public :
+
+        /**
+         * Constructor
+         */   
+        LDAPAttrType();
+
+        /**
+         * Copy constructor
+         */   
+       LDAPAttrType (const LDAPAttrType& oc);
+
+        /**
+        * Constructs new object and fills the data structure by parsing the
+        * argument.
+        * @param at_item description of attribute type is string returned
+        *  by the search command. It is in the form:
+        * "( SuSE.YaST.Attr:19 NAME ( 'skelDir' ) DESC ''
+        *    EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )"
+         */   
+        LDAPAttrType (string at_item);
+
+        /**
+         * Destructor
+         */
+        virtual ~LDAPAttrType();
+       
+       
+       /**
+        * Returns attribute description
+        */
+       string getDesc ();
+       
+       /**
+        * Returns attribute oid
+        */
+       string getOid ();
+
+       /**
+        * Returns attribute name (first one if there are more of them)
+        */
+       string getName ();
+
+       /**
+        * Returns all attribute names
+        */
+       StringList getNames();
+       
+       /**
+        * Returns true if attribute type hllows only single value
+        */
+       bool isSingle();
+       
+       void setNames (char **at_names);
+       void setDesc (char *at_desc);
+       void setOid (char *at_oid);
+       void setSingle (int at_single_value);
+       
+};
+
+#endif // LDAP_ATTRTYPE_H
diff --git a/contrib/ldapc++/src/LDAPObjClass.cpp b/contrib/ldapc++/src/LDAPObjClass.cpp
new file mode 100644 (file)
index 0000000..320fe59
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2003, OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
+
+#include "debug.h"
+#include "LDAPObjClass.h"
+
+
+LDAPObjClass::LDAPObjClass(){
+    DEBUG(LDAP_DEBUG_CONSTRUCT,
+            "LDAPObjClass::LDAPObjClass( )" << endl);
+
+    oid = string ();
+    desc = string ();
+    names = StringList ();
+    must = StringList();
+    may = StringList();
+}
+
+LDAPObjClass::LDAPObjClass (const LDAPObjClass &oc){
+    DEBUG(LDAP_DEBUG_CONSTRUCT,
+            "LDAPObjClass::LDAPObjClass( )" << endl);
+
+    oid = oc.oid;
+    desc = oc.desc;
+    names = oc.names;
+    must = oc.must;
+    may = oc.may;
+    kind = oc.kind;
+}
+
+LDAPObjClass::LDAPObjClass (string oc_item) { 
+
+    DEBUG(LDAP_DEBUG_CONSTRUCT,
+            "LDAPObjClass::LDAPObjClass( )" << endl);
+
+    LDAPObjectClass *o;
+    int ret;
+    const char *errp;
+    o = ldap_str2objectclass ( oc_item.c_str(), &ret, &errp, SCHEMA_PARSE_FLAG);
+
+    if (o) {
+        this->setNames (o->oc_names);
+       this->setDesc (o->oc_desc);
+        this->setOid (o->oc_oid);
+       this->setKind (o->oc_kind);
+        this->setMust (o->oc_at_oids_must);
+       this->setMay (o->oc_at_oids_may);
+    }
+    // else? -> error
+}
+
+LDAPObjClass::~LDAPObjClass() {
+    DEBUG(LDAP_DEBUG_DESTROY,"LDAPObjClass::~LDAPObjClass()" << endl);
+}
+
+void LDAPObjClass::setKind (int oc_kind) {
+    kind = oc_kind;
+}
+    
+void LDAPObjClass::setNames (char **oc_names) {
+    names = StringList (oc_names);
+}
+
+void LDAPObjClass::setMust (char **oc_must) {
+    must = StringList (oc_must);
+}
+
+void LDAPObjClass::setMay (char **oc_may) {
+    may = StringList (oc_may);
+}
+
+void LDAPObjClass::setDesc (char *oc_desc) {
+    desc = string ();
+    if (oc_desc)
+       desc = oc_desc;
+}
+
+void LDAPObjClass::setOid (char *oc_oid) {
+    oid = string ();
+    if (oc_oid)
+       oid = oc_oid;
+}
+
+string LDAPObjClass::getOid () {
+    return oid;
+}
+
+string LDAPObjClass::getDesc () {
+    return desc;
+}
+
+StringList LDAPObjClass::getNames () {
+    return names;
+}
+
+StringList LDAPObjClass::getMust () {
+    return must;
+}
+
+StringList LDAPObjClass::getMay () {
+    return may;
+}
+
+string LDAPObjClass::getName () {
+
+    if (names.empty())
+       return "";
+    else
+       return *(names.begin());
+}
diff --git a/contrib/ldapc++/src/LDAPObjClass.h b/contrib/ldapc++/src/LDAPObjClass.h
new file mode 100644 (file)
index 0000000..13cdea1
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2003, OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
+
+#ifndef LDAP_OBJCLASS_H
+#define LDAP_OBJCLASS_H
+
+#include <ldap_schema.h>
+#include <string>
+
+#include "StringList.h"
+
+#define SCHEMA_PARSE_FLAG    0x03
+
+
+using namespace std;
+
+/**
+ * Represents the Object Class (from LDAP schema)
+ */
+class LDAPObjClass{
+    private :
+       StringList names, must, may;
+       string desc, oid;
+       int kind;
+       
+    public :
+
+        /**
+         * Constructs an empty object.
+         */   
+        LDAPObjClass();
+
+        /**
+         * Copy constructor
+        */   
+       LDAPObjClass (const LDAPObjClass& oc);
+
+        /**
+        * Constructs new object and fills the data structure by parsing the
+        * argument.
+        * @param oc_item description of object class is string returned
+        * by the search command. It is in the form:
+        * "( SuSE.YaST.OC:5 NAME 'userTemplate' SUP objectTemplate STRUCTURAL
+        *    DESC 'User object template' MUST ( cn ) MAY ( secondaryGroup ))"
+         */   
+        LDAPObjClass (string oc_item);
+
+        /**
+         * Destructor
+         */
+        virtual ~LDAPObjClass();
+       
+       /**
+        * Returns object class description
+        */
+       string getDesc ();
+       
+       /**
+        * Returns object class oid
+        */
+       string getOid ();
+
+       /**
+        * Returns object class name (first one if there are more of them)
+        */
+       string getName ();
+
+       /**
+        * Returns all object class names
+        */
+       StringList getNames();
+       
+       /**
+        * Returns list of required attributes
+        */
+       StringList getMust();
+       
+       /**
+        * Returns list of allowed (and not required) attributes
+        */
+       StringList getMay();
+
+       void setNames (char **oc_names);
+       void setMay (char **oc_may);
+       void setMust (char **oc_must);
+       void setDesc (char *oc_desc);
+       void setOid (char *oc_oid);
+       void setKind (int oc_kind);
+       
+};
+
+#endif // LDAP_OBJCLASS_H
diff --git a/contrib/ldapc++/src/LDAPSchema.cpp b/contrib/ldapc++/src/LDAPSchema.cpp
new file mode 100644 (file)
index 0000000..e69d275
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2003, OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
+
+#include "debug.h"
+#include "StringList.h"
+#include "LDAPSchema.h"
+
+using namespace std;
+
+LDAPSchema::LDAPSchema(){
+    DEBUG(LDAP_DEBUG_CONSTRUCT,
+            "LDAPSchema::LDAPSchema( )" << endl);
+}
+
+LDAPSchema::~LDAPSchema() {
+    DEBUG(LDAP_DEBUG_DESTROY,"LDAPSchema::~LDAPSchema()" << endl);
+}
+
+void LDAPSchema::setObjectClasses (const StringList &ocs) {
+    DEBUG(LDAP_DEBUG_TRACE,"LDAPSchema::setObjectClasses()" << endl);
+    
+    // parse the stringlist and save it to global map...
+    StringList::const_iterator i,j;
+    for (i = ocs.begin(); i != ocs.end(); i++) {
+       LDAPObjClass oc ( (*i) );
+       StringList names = oc.getNames();
+       // there could be more names for one object...
+       for (j = names.begin(); j != names.end(); j++) {
+           object_classes [(*j)] = LDAPObjClass (oc);
+       }
+    }
+}
+
+void LDAPSchema::setAttributeTypes (const StringList &ats) {
+    DEBUG(LDAP_DEBUG_TRACE,"LDAPSchema::setAttributeTypes()" << endl);
+    
+    // parse the stringlist and save it to global map...
+    StringList::const_iterator i,j;
+    for (i = ats.begin(); i != ats.end(); i++) {
+       LDAPAttrType at ( (*i) );
+       StringList names = at.getNames();
+       // there could be more names for one object...
+       for (j = names.begin(); j != names.end(); j++) {
+           attr_types [(*j)] = LDAPAttrType (at);
+       }
+    }
+}
+
+LDAPObjClass LDAPSchema::getObjectClassByName (string name) {
+
+    return object_classes [name];
+}
+
+LDAPAttrType LDAPSchema::getAttributeTypeByName (string name) {
+
+    return attr_types [name];
+}
diff --git a/contrib/ldapc++/src/LDAPSchema.h b/contrib/ldapc++/src/LDAPSchema.h
new file mode 100644 (file)
index 0000000..367e1fb
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2003, OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
+
+#ifndef LDAP_SCHEMA_H
+#define LDAP_SCHEMA_H
+
+#include <ldap.h>
+#include <string>
+#include <map>
+
+#include "LDAPObjClass.h"
+#include "LDAPAttrType.h"
+
+/**
+ * Represents the LDAP schema
+ */
+class LDAPSchema{
+    private :
+       /**
+        * map of object classes: index is name, value is LDAPObjClass object
+        */
+       map <string, LDAPObjClass> object_classes;
+       
+       /**
+        * map of attribute types: index is name, value is LDAPAttrType object
+        */
+       map <string, LDAPAttrType> attr_types;
+
+    public :
+
+        /**
+         * Constructs an empty object
+         */   
+        LDAPSchema();
+
+        /**
+         * Destructor
+         */
+        virtual ~LDAPSchema();
+       
+        /**
+         * Fill the object_classes map
+        * @param oc description of one objectclass (string returned by search
+        * command), in form:
+        * "( SuSE.YaST.OC:5 NAME 'userTemplate' SUP objectTemplate STRUCTURAL
+        *    DESC 'User object template' MUST ( cn ) MAY ( secondaryGroup ))"
+         */
+       void setObjectClasses (const StringList &oc);
+
+        /**
+         * Fill the attr_types map
+        * @param at description of one attribute type
+        *  (string returned by search command), in form:
+        * "( SuSE.YaST.Attr:19 NAME ( 'skelDir' ) DESC ''
+        *    EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )"
+         */
+       void setAttributeTypes (const StringList &at);
+
+       /**
+        * Returns object class object with given name
+        */
+       LDAPObjClass getObjectClassByName (std::string name);
+       
+       /**
+        * Returns attribute type object with given name
+        */
+       LDAPAttrType getAttributeTypeByName (string name);
+
+};
+
+#endif // LDAP_SCHEMA_H
index 20a594b27c806004832fc494b4774edbe8f12c91..d18fbe7e68884b288e8ab2be0d05a81042923190 100644 (file)
@@ -6,48 +6,52 @@
 lib_LTLIBRARIES = libldapcpp.la
 
 libldapcpp_la_SOURCES = LDAPAddRequest.cpp \
-                       LDAPAsynConnection.cpp \
-                       LDAPAttribute.cpp \
-                       LDAPAttributeList.cpp \
-                       LDAPBindRequest.cpp \
-                       LDAPCompareRequest.cpp \
-            LDAPConnection.cpp \
-                       LDAPConstraints.cpp \
-                       LDAPControl.cpp \
-                       LDAPControlSet.cpp \
-                       LDAPDeleteRequest.cpp \
-                       LDAPEntry.cpp \
-                       LDAPEntryList.cpp \
-                       LDAPException.cpp \
-                       LDAPExtRequest.cpp \
-                       LDAPExtResult.cpp \
-                       LDAPMessage.cpp \
-                       LDAPMessageQueue.cpp \
-                       LDAPModDNRequest.cpp \
-                       LDAPModification.cpp \
-                       LDAPModifyRequest.cpp \
-                       LDAPModList.cpp \
-                       LDAPRebind.cpp \
-                       LDAPRebindAuth.cpp \
-                       LDAPReferralException.cpp \
-            LDAPReferenceList.cpp \
-            LDAPRequest.cpp \
-                       LDAPResult.cpp \
-                       LDAPSearchReference.cpp \
-                       LDAPSearchRequest.cpp \
-                       LDAPSearchResult.cpp \
-                       LDAPSearchResults.cpp \
-                       LDAPUrl.cpp \
-                       LDAPUrlList.cpp \
-                       StringList.cpp 
+                        LDAPAsynConnection.cpp \
+                        LDAPAttribute.cpp \
+                        LDAPAttributeList.cpp \
+                        LDAPAttrType.cpp \
+                        LDAPBindRequest.cpp \
+                        LDAPCompareRequest.cpp \
+                        LDAPConnection.cpp \
+                        LDAPConstraints.cpp \
+                        LDAPControl.cpp \
+                        LDAPControlSet.cpp \
+                        LDAPDeleteRequest.cpp \
+                        LDAPEntry.cpp \
+                        LDAPEntryList.cpp \
+                        LDAPException.cpp \
+                        LDAPExtRequest.cpp \
+                        LDAPExtResult.cpp \
+                        LDAPMessage.cpp \
+                        LDAPMessageQueue.cpp \
+                        LDAPModDNRequest.cpp \
+                        LDAPModification.cpp \
+                        LDAPModifyRequest.cpp \
+                        LDAPModList.cpp \
+                        LDAPObjClass.cpp \
+                        LDAPRebind.cpp \
+                        LDAPRebindAuth.cpp \
+                        LDAPReferralException.cpp \
+                        LDAPReferenceList.cpp \
+                        LDAPRequest.cpp \
+                        LDAPResult.cpp \
+                        LDAPSchema.cpp \
+                        LDAPSearchReference.cpp \
+                        LDAPSearchRequest.cpp \
+                        LDAPSearchResult.cpp \
+                        LDAPSearchResults.cpp \
+                        LDAPUrl.cpp \
+                        LDAPUrlList.cpp \
+                        StringList.cpp 
 
 include_HEADERS = LDAPAsynConnection.h \
                         LDAPAttribute.h \
                         LDAPAttributeList.h \
+                        LDAPAttrType.h \
                         LDAPConnection.h \
                         LDAPConstraints.h \
                         LDAPControl.h \
-                       LDAPControlSet.h \
+                        LDAPControlSet.h \
                         LDAPEntry.h \
                         LDAPEntryList.h \
                         LDAPException.h \
@@ -56,11 +60,13 @@ include_HEADERS = LDAPAsynConnection.h \
                         LDAPMessageQueue.h \
                         LDAPModification.h \
                         LDAPModList.h \
+                        LDAPObjClass.h \
                         LDAPRebind.h \
                         LDAPRebindAuth.h \
                         LDAPReferralException.h \
                         LDAPReferenceList.h \
                         LDAPResult.h \
+                        LDAPSchema.h \
                         LDAPSearchReference.h \
                         LDAPSearchResult.h \
                         LDAPSearchResults.h \
index e8fad1734d35a7f00a73c2f86fbd90773b105c3c..b10a3b5cdc0b4b146dc05eaf120f7a85e784eec3 100644 (file)
@@ -129,49 +129,53 @@ target_alias = @target_alias@
 lib_LTLIBRARIES = libldapcpp.la
 
 libldapcpp_la_SOURCES = LDAPAddRequest.cpp \
-                       LDAPAsynConnection.cpp \
-                       LDAPAttribute.cpp \
-                       LDAPAttributeList.cpp \
-                       LDAPBindRequest.cpp \
-                       LDAPCompareRequest.cpp \
-            LDAPConnection.cpp \
-                       LDAPConstraints.cpp \
-                       LDAPControl.cpp \
-                       LDAPControlSet.cpp \
-                       LDAPDeleteRequest.cpp \
-                       LDAPEntry.cpp \
-                       LDAPEntryList.cpp \
-                       LDAPException.cpp \
-                       LDAPExtRequest.cpp \
-                       LDAPExtResult.cpp \
-                       LDAPMessage.cpp \
-                       LDAPMessageQueue.cpp \
-                       LDAPModDNRequest.cpp \
-                       LDAPModification.cpp \
-                       LDAPModifyRequest.cpp \
-                       LDAPModList.cpp \
-                       LDAPRebind.cpp \
-                       LDAPRebindAuth.cpp \
-                       LDAPReferralException.cpp \
-            LDAPReferenceList.cpp \
-            LDAPRequest.cpp \
-                       LDAPResult.cpp \
-                       LDAPSearchReference.cpp \
-                       LDAPSearchRequest.cpp \
-                       LDAPSearchResult.cpp \
-                       LDAPSearchResults.cpp \
-                       LDAPUrl.cpp \
-                       LDAPUrlList.cpp \
-                       StringList.cpp 
+                        LDAPAsynConnection.cpp \
+                        LDAPAttribute.cpp \
+                        LDAPAttributeList.cpp \
+                        LDAPAttrType.cpp \
+                        LDAPBindRequest.cpp \
+                        LDAPCompareRequest.cpp \
+                        LDAPConnection.cpp \
+                        LDAPConstraints.cpp \
+                        LDAPControl.cpp \
+                        LDAPControlSet.cpp \
+                        LDAPDeleteRequest.cpp \
+                        LDAPEntry.cpp \
+                        LDAPEntryList.cpp \
+                        LDAPException.cpp \
+                        LDAPExtRequest.cpp \
+                        LDAPExtResult.cpp \
+                        LDAPMessage.cpp \
+                        LDAPMessageQueue.cpp \
+                        LDAPModDNRequest.cpp \
+                        LDAPModification.cpp \
+                        LDAPModifyRequest.cpp \
+                        LDAPModList.cpp \
+                        LDAPObjClass.cpp \
+                        LDAPRebind.cpp \
+                        LDAPRebindAuth.cpp \
+                        LDAPReferralException.cpp \
+                        LDAPReferenceList.cpp \
+                        LDAPRequest.cpp \
+                        LDAPResult.cpp \
+                        LDAPSchema.cpp \
+                        LDAPSearchReference.cpp \
+                        LDAPSearchRequest.cpp \
+                        LDAPSearchResult.cpp \
+                        LDAPSearchResults.cpp \
+                        LDAPUrl.cpp \
+                        LDAPUrlList.cpp \
+                        StringList.cpp 
 
 
 include_HEADERS = LDAPAsynConnection.h \
                         LDAPAttribute.h \
                         LDAPAttributeList.h \
+                        LDAPAttrType.h \
                         LDAPConnection.h \
                         LDAPConstraints.h \
                         LDAPControl.h \
-                       LDAPControlSet.h \
+                        LDAPControlSet.h \
                         LDAPEntry.h \
                         LDAPEntryList.h \
                         LDAPException.h \
@@ -180,11 +184,13 @@ include_HEADERS = LDAPAsynConnection.h \
                         LDAPMessageQueue.h \
                         LDAPModification.h \
                         LDAPModList.h \
+                        LDAPObjClass.h \
                         LDAPRebind.h \
                         LDAPRebindAuth.h \
                         LDAPReferralException.h \
                         LDAPReferenceList.h \
                         LDAPResult.h \
+                        LDAPSchema.h \
                         LDAPSearchReference.h \
                         LDAPSearchResult.h \
                         LDAPSearchResults.h \
@@ -214,15 +220,16 @@ LTLIBRARIES = $(lib_LTLIBRARIES)
 
 libldapcpp_la_DEPENDENCIES =
 am_libldapcpp_la_OBJECTS = LDAPAddRequest.lo LDAPAsynConnection.lo \
-       LDAPAttribute.lo LDAPAttributeList.lo LDAPBindRequest.lo \
-       LDAPCompareRequest.lo LDAPConnection.lo LDAPConstraints.lo \
-       LDAPControl.lo LDAPControlSet.lo LDAPDeleteRequest.lo \
-       LDAPEntry.lo LDAPEntryList.lo LDAPException.lo \
-       LDAPExtRequest.lo LDAPExtResult.lo LDAPMessage.lo \
-       LDAPMessageQueue.lo LDAPModDNRequest.lo LDAPModification.lo \
-       LDAPModifyRequest.lo LDAPModList.lo LDAPRebind.lo \
-       LDAPRebindAuth.lo LDAPReferralException.lo LDAPReferenceList.lo \
-       LDAPRequest.lo LDAPResult.lo LDAPSearchReference.lo \
+       LDAPAttribute.lo LDAPAttributeList.lo LDAPAttrType.lo \
+       LDAPBindRequest.lo LDAPCompareRequest.lo LDAPConnection.lo \
+       LDAPConstraints.lo LDAPControl.lo LDAPControlSet.lo \
+       LDAPDeleteRequest.lo LDAPEntry.lo LDAPEntryList.lo \
+       LDAPException.lo LDAPExtRequest.lo LDAPExtResult.lo \
+       LDAPMessage.lo LDAPMessageQueue.lo LDAPModDNRequest.lo \
+       LDAPModification.lo LDAPModifyRequest.lo LDAPModList.lo \
+       LDAPObjClass.lo LDAPRebind.lo LDAPRebindAuth.lo \
+       LDAPReferralException.lo LDAPReferenceList.lo LDAPRequest.lo \
+       LDAPResult.lo LDAPSchema.lo LDAPSearchReference.lo \
        LDAPSearchRequest.lo LDAPSearchResult.lo LDAPSearchResults.lo \
        LDAPUrl.lo LDAPUrlList.lo StringList.lo
 libldapcpp_la_OBJECTS = $(am_libldapcpp_la_OBJECTS)
@@ -232,6 +239,7 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/LDAPAddRequest.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPAsynConnection.Plo \
+@AMDEP_TRUE@   ./$(DEPDIR)/LDAPAttrType.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPAttribute.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPAttributeList.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPBindRequest.Plo \
@@ -252,12 +260,14 @@ am__depfiles_maybe = depfiles
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPModList.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPModification.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPModifyRequest.Plo \
+@AMDEP_TRUE@   ./$(DEPDIR)/LDAPObjClass.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPRebind.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPRebindAuth.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPReferenceList.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPReferralException.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPRequest.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPResult.Plo \
+@AMDEP_TRUE@   ./$(DEPDIR)/LDAPSchema.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPSearchReference.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPSearchRequest.Plo \
 @AMDEP_TRUE@   ./$(DEPDIR)/LDAPSearchResult.Plo \
@@ -345,6 +355,7 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPAddRequest.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPAsynConnection.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPAttrType.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPAttribute.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPAttributeList.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPBindRequest.Plo@am__quote@
@@ -365,12 +376,14 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPModList.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPModification.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPModifyRequest.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPObjClass.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPRebind.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPRebindAuth.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPReferenceList.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPReferralException.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPRequest.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPResult.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPSchema.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPSearchReference.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPSearchRequest.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LDAPSearchResult.Plo@am__quote@