1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
// $OpenLDAP$
/*
* Copyright 2000-2021 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;
}
|