diff options
Diffstat (limited to '')
-rw-r--r-- | contrib/ldapc++/src/LDAPAttrType.h | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/contrib/ldapc++/src/LDAPAttrType.h b/contrib/ldapc++/src/LDAPAttrType.h new file mode 100644 index 0000000..643653b --- /dev/null +++ b/contrib/ldapc++/src/LDAPAttrType.h @@ -0,0 +1,101 @@ +// $OpenLDAP$ +/* + * Copyright 2003-2021 The 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" + +using namespace std; + +/** + * Represents the Attribute Type (from LDAP schema) + */ +class LDAPAttrType{ + private : + StringList names; + std::string desc, oid, superiorOid, equalityOid; + std::string orderingOid, substringOid, syntaxOid; + bool single; + int usage; + + public : + + /** + * Constructor + */ + LDAPAttrType(); + + /** + * 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, int flags = LDAP_SCHEMA_ALLOW_NO_OID | + LDAP_SCHEMA_ALLOW_QUOTED ); + + /** + * Destructor + */ + virtual ~LDAPAttrType(); + + + /** + * Returns attribute description + */ + string getDesc() const; + + /** + * Returns attribute oid + */ + string getOid() const; + + /** + * Returns attribute name (first one if there are more of them) + */ + string getName() const; + + /** + * Returns all attribute names + */ + StringList getNames() const; + + /** + * Returns true if attribute type allows only single value + */ + bool isSingle() const; + + /** + * Return the 'usage' value: + * (0=userApplications, 1=directoryOperation, 2=distributedOperation, + * 3=dSAOperation) + */ + int getUsage () const; + std::string getSuperiorOid() const; + std::string getEqualityOid() const; + std::string getOrderingOid() const; + std::string getSubstringOid() const; + std::string getSyntaxOid() const; + + void setNames( char **at_names); + void setDesc(const char *at_desc); + void setOid(const char *at_oid); + void setSingle(int at_single_value); + void setUsage(int at_usage ); + void setSuperiorOid( const char *oid ); + void setEqualityOid( const char *oid ); + void setOrderingOid( const char *oid ); + void setSubstringOid( const char *oid ); + void setSyntaxOid( const char *oid ); +}; + +#endif // LDAP_ATTRTYPE_H |