]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/LDAPDeleteRequest.cpp
Initial check of the LDAP C++ SDK written by Ralf Haferkamp <rhafer@suse.de>
[openldap] / contrib / ldapc++ / src / LDAPDeleteRequest.cpp
1 /*
2  * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
3  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
4  */
5
6 #include <ldap.h>
7
8 #include "debug.h"
9
10 #include "LDAPDeleteRequest.h"
11 #include "LDAPException.h"
12 #include "LDAPMessageQueue.h"
13
14 LDAPDeleteRequest::LDAPDeleteRequest( const LDAPDeleteRequest& req) :
15         LDAPRequest(req){
16         DEBUG(LDAP_DEBUG_TRACE, 
17                 "LDAPDeleteRequest::LDAPDeleteRequest(LDAPDeleteRequest&)" 
18                 << endl);
19 }
20
21 LDAPDeleteRequest::LDAPDeleteRequest(const char *dn, 
22         const LDAPAsynConnection *connect, const LDAPConstraints *cons,
23         bool isReferral=false) : LDAPRequest(connect, cons, isReferral) {
24
25         DEBUG(LDAP_DEBUG_TRACE, "LDAPDeleteRequest::LDAPDeleteRequest()" << endl);
26         DEBUG(LDAP_DEBUG_PARAMETER, "   dn:" << dn << endl);
27     m_requestType=LDAPRequest::DELETE;
28     if(dn != 0){
29         m_dn=strdup(dn);
30     }
31 }
32
33 LDAPDeleteRequest::~LDAPDeleteRequest(){
34         DEBUG(LDAP_DEBUG_TRACE, "LDAPDeleteRequest::~LDAPDeleteRequest()" << endl);
35     delete[] m_dn;
36 }
37
38 LDAPMessageQueue* LDAPDeleteRequest::sendRequest(){
39         DEBUG(LDAP_DEBUG_TRACE, "LDAPDeleteRequest::sendRequest()" << endl);
40     int msgID=0;
41     int err=ldap_delete_ext(m_connection->getSessionHandle(),m_dn, 
42             m_cons->getSrvCtrlsArray(), m_cons->getClCtrlsArray(),&msgID);
43     if(err != LDAP_SUCCESS){
44         delete this;
45         throw LDAPException(err);
46     }else{
47         m_msgID=msgID;
48         return new LDAPMessageQueue(this);
49     }
50 }
51
52 LDAPRequest* LDAPDeleteRequest::followReferral(LDAPUrlList *refs){
53         DEBUG(LDAP_DEBUG_TRACE, "LDAPDeleteRequest::followReferral()" << endl);
54     cerr << "to be implemented" << endl;
55     return 0;
56 }
57