diff options
Diffstat (limited to '')
-rw-r--r-- | contrib/ldapc++/src/LDAPEntry.cpp | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/contrib/ldapc++/src/LDAPEntry.cpp b/contrib/ldapc++/src/LDAPEntry.cpp new file mode 100644 index 0000000..86c8f8a --- /dev/null +++ b/contrib/ldapc++/src/LDAPEntry.cpp @@ -0,0 +1,104 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2018 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + + +#include "debug.h" +#include "LDAPEntry.h" + +#include "LDAPAsynConnection.h" +#include "LDAPException.h" + +using namespace std; + +LDAPEntry::LDAPEntry(const LDAPEntry& entry){ + DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPEntry::LDAPEntry(&)" << endl); + m_dn=entry.m_dn; + m_attrs=new LDAPAttributeList( *(entry.m_attrs)); +} + + +LDAPEntry::LDAPEntry(const string& dn, const LDAPAttributeList *attrs){ + DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPEntry::LDAPEntry()" << endl); + DEBUG(LDAP_DEBUG_CONSTRUCT | LDAP_DEBUG_PARAMETER, + " dn:" << dn << endl); + if ( attrs ) + m_attrs=new LDAPAttributeList(*attrs); + else + m_attrs=new LDAPAttributeList(); + m_dn=dn; +} + +LDAPEntry::LDAPEntry(const LDAPAsynConnection *ld, LDAPMessage *msg){ + DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPEntry::LDAPEntry()" << endl); + char* tmp=ldap_get_dn(ld->getSessionHandle(),msg); + m_dn=string(tmp); + ldap_memfree(tmp); + m_attrs = new LDAPAttributeList(ld, msg); +} + +LDAPEntry::~LDAPEntry(){ + DEBUG(LDAP_DEBUG_DESTROY,"LDAPEntry::~LDAPEntry()" << endl); + delete m_attrs; +} + +LDAPEntry& LDAPEntry::operator=(const LDAPEntry& from){ + m_dn = from.m_dn; + delete m_attrs; + m_attrs = new LDAPAttributeList( *(from.m_attrs)); + return *this; +} + +void LDAPEntry::setDN(const string& dn){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPEntry::setDN()" << endl); + DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER, + " dn:" << dn << endl); + m_dn=dn; +} + +void LDAPEntry::setAttributes(LDAPAttributeList *attrs){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPEntry::setAttributes()" << endl); + DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER, + " attrs:" << *attrs << endl); + if (m_attrs != 0){ + delete m_attrs; + } + m_attrs=attrs; +} + +const string& LDAPEntry::getDN() const{ + DEBUG(LDAP_DEBUG_TRACE,"LDAPEntry::getDN()" << endl); + return m_dn; +} + +const LDAPAttributeList* LDAPEntry::getAttributes() const{ + DEBUG(LDAP_DEBUG_TRACE,"LDAPEntry::getAttributes()" << endl); + return m_attrs; +} + +const LDAPAttribute* LDAPEntry::getAttributeByName(const std::string& name) const +{ + return m_attrs->getAttributeByName(name); +} + +void LDAPEntry::addAttribute(const LDAPAttribute& attr) +{ + m_attrs->addAttribute(attr); +} + +void LDAPEntry::delAttribute(const std::string& type) +{ + m_attrs->delAttribute(type); +} + +void LDAPEntry::replaceAttribute(const LDAPAttribute& attr) +{ + m_attrs->replaceAttribute(attr); +} + +ostream& operator << (ostream& s, const LDAPEntry& le){ + s << "DN: " << le.m_dn << ": " << *(le.m_attrs); + return s; +} |