]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/LDAPControl.cpp
b5b61f391d150534488687d13e4538a189470b0a
[openldap] / contrib / ldapc++ / src / LDAPControl.cpp
1 /*
2  * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
3  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
4  */
5
6
7 #include "LDAPControl.h"
8 #include "debug.h"
9 LDAPCtrl::LDAPCtrl(const LDAPCtrl& c){
10     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl(&)" << endl);
11     m_oid=c.m_oid;
12     m_data=c.m_data;
13     m_isCritical=c.m_isCritical;
14 }
15
16 LDAPCtrl::LDAPCtrl(const char *oid, bool critical, const char* data,
17         int length){
18     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
19     DEBUG(LDAP_DEBUG_CONSTRUCT | LDAP_DEBUG_PARAMETER,
20             "   oid:" << oid << endl << "   critical:" << critical << endl);
21     m_oid = oid;
22     m_isCritical=critical;
23     if (data != 0 && length !=0){
24         m_data.assign(data,length);
25     }else{
26         m_data=string();
27     }
28 }
29
30
31 LDAPCtrl::LDAPCtrl(const string& oid, bool critical, const string& data){
32     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
33     DEBUG(LDAP_DEBUG_CONSTRUCT | LDAP_DEBUG_PARAMETER,
34             "   oid:" << oid << endl << "   critical:" << critical << endl);
35     m_oid=oid;
36     m_isCritical=critical;
37     m_data=data;
38 }
39
40 LDAPCtrl::LDAPCtrl(const LDAPControl* ctrl){
41     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
42     m_oid = string(ctrl->ldctl_oid);
43     m_oid = ctrl->ldctl_iscritical ? true : false;
44     m_oid = string(ctrl->ldctl_value.bv_val, ctrl->ldctl_value.bv_len );
45 }
46
47 LDAPCtrl::~LDAPCtrl(){
48     DEBUG(LDAP_DEBUG_DESTROY,"LDAPCtrl::~LDAPCtrl" << endl);
49 }
50
51 string LDAPCtrl::getOID() const{
52     DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getOID()" << endl);
53     return m_oid;
54 }
55
56 bool LDAPCtrl::isCritical()const {
57     DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::isCritical()" << endl);
58     return m_isCritical;
59 }
60
61 string LDAPCtrl::getData() const {
62     DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getData()" << endl);
63     return m_data;
64 }
65          
66 LDAPControl* LDAPCtrl::getControlStruct() const {
67     DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getControlStruct()" << endl);
68     LDAPControl* ret = new LDAPControl;
69     ret->ldctl_oid= new char[m_oid.size() + 1];
70     m_oid.copy(ret->ldctl_oid,string::npos);
71     ret->ldctl_oid[m_oid.size()]=0;
72     ret->ldctl_value.bv_len=m_data.size();
73     ret->ldctl_value.bv_val= new char[m_data.size()];
74     m_data.copy(ret->ldctl_value.bv_val,string::npos);
75     ret->ldctl_iscritical = ( m_isCritical ? 1:0);
76     return ret;
77 }
78