ldapsdk 0.0.1
LDAPAsynConnection.h
Go to the documentation of this file.
1// $OpenLDAP$
2/*
3 * Copyright 2000-2013 The OpenLDAP Foundation, All Rights Reserved.
4 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5 */
6
7
8#ifndef LDAP_ASYN_CONNECTION_H
9#define LDAP_ASYN_CONNECTION_H
10
11#include<iostream>
12#include<string>
13
14#include<ldap.h>
15
16#include <LDAPEntry.h>
17#include <LDAPException.h>
18#include <LDAPMessageQueue.h>
19#include <LDAPConstraints.h>
20#include <LDAPModification.h>
21#include <LDAPModList.h>
22#include <LDAPUrl.h>
23#include <LDAPUrlList.h>
25#include <TlsOptions.h>
26
27//* Main class for an asynchronous LDAP connection
46 public :
51 static const int SEARCH_BASE=0;
52
57 static const int SEARCH_ONE=1;
58
63 static const int SEARCH_SUB=2;
64
71 LDAPAsynConnection(const std::string& url=std::string("localhost"),
72 int port=0, LDAPConstraints *cons=new LDAPConstraints() );
73
74 //* Destructor
75 virtual ~LDAPAsynConnection();
87 void init(const std::string& hostname, int port);
88
96 void initialize(const std::string& uri);
97
105 void start_tls();
106
117 LDAPMessageQueue* bind(const std::string& dn="",
118 const std::string& passwd="",
119 const LDAPConstraints *cons=0);
120
121 LDAPMessageQueue* saslBind(const std::string& mech,
122 const std::string& cred,
123 const LDAPConstraints *cons=0);
124
125 LDAPMessageQueue* saslInteractiveBind(const std::string& mech,
126 int flags=0,
128 const LDAPConstraints *cons=0);
129
149 LDAPMessageQueue* search(const std::string& base="", int scope=0,
150 const std::string& filter="objectClass=*",
151 const StringList& attrs=StringList(),
152 bool attrsOnly=false,
153 const LDAPConstraints *cons=0);
154
165 LDAPMessageQueue* del(const std::string& dn, const LDAPConstraints *cons=0);
166
180 LDAPMessageQueue* compare(const std::string& dn,
181 const LDAPAttribute& attr,
182 const LDAPConstraints *cons=0);
183
191 LDAPMessageQueue* add( const LDAPEntry* le,
192 const LDAPConstraints *const=0);
193
205 LDAPMessageQueue* modify(const std::string& dn,
206 const LDAPModList *modlist,
207 const LDAPConstraints *cons=0);
208
223 LDAPMessageQueue* rename(const std::string& dn,
224 const std::string& newRDN,
225 bool delOldRDN=false, const std::string& newParentDN="",
226 const LDAPConstraints* cons=0);
227
239 LDAPMessageQueue* extOperation(const std::string& oid,
240 const std::string& value="", const LDAPConstraints *cons=0);
241
247 void abandon(LDAPMessageQueue *q);
248
254 void unbind();
255
260 LDAP* getSessionHandle() const ;
261
266 const std::string& getHost() const;
267
272 int getPort() const;
273
279
285 const LDAPConstraints* getConstraints() const;
304 const LDAPConstraints* cons) const;
305
306 private :
311
316 LDAP *cur_session;
317
323 LDAPConstraints *m_constr;
324
328 LDAPUrl m_uri;
329
330 protected:
335};
336#endif //LDAP_ASYN_CONNECTION_H
337
338
This class represents an asynchronous connection to an LDAP-Server.
Definition: LDAPAsynConnection.h:45
void abandon(LDAPMessageQueue *q)
End an outstanding request.
Definition: LDAPAsynConnection.cpp:248
const LDAPConstraints * getConstraints() const
Get the default constraints of the connection.
Definition: LDAPAsynConnection.cpp:283
LDAP * getSessionHandle() const
Definition: LDAPAsynConnection.cpp:292
static const int SEARCH_SUB
Constant for the Search-Operation to indicate a subtree Search.
Definition: LDAPAsynConnection.h:63
static const int SEARCH_BASE
Constant for the Search-Operation to indicate a Base-Level Search.
Definition: LDAPAsynConnection.h:51
void setConstraints(LDAPConstraints *cons)
Change the default constraints of the connection.
Definition: LDAPAsynConnection.cpp:278
void initialize(const std::string &uri)
Initializes a connection to a server.
Definition: LDAPAsynConnection.cpp:68
void unbind()
Performs the UNBIND-operation on the destination server.
Definition: LDAPAsynConnection.cpp:263
virtual ~LDAPAsynConnection()
Definition: LDAPAsynConnection.cpp:46
bool m_cacheEnabled
Is caching enabled?
Definition: LDAPAsynConnection.h:334
LDAPMessageQueue * saslBind(const std::string &mech, const std::string &cred, const LDAPConstraints *cons=0)
Definition: LDAPAsynConnection.cpp:101
LDAPMessageQueue * rename(const std::string &dn, const std::string &newRDN, bool delOldRDN=false, const std::string &newParentDN="", const LDAPConstraints *cons=0)
modify the DN of an entry
Definition: LDAPAsynConnection.cpp:213
LDAPMessageQueue * bind(const std::string &dn="", const std::string &passwd="", const LDAPConstraints *cons=0)
Simple authentication to a LDAP-Server.
Definition: LDAPAsynConnection.cpp:86
LDAPAsynConnection(const std::string &url=std::string("localhost"), int port=0, LDAPConstraints *cons=new LDAPConstraints())
Construtor that initializes a connection to a server.
LDAPMessageQueue * modify(const std::string &dn, const LDAPModList *modlist, const LDAPConstraints *cons=0)
Apply modifications to attributes of an entry.
Definition: LDAPAsynConnection.cpp:199
LDAPMessageQueue * add(const LDAPEntry *le, const LDAPConstraints *const=0)
Add an entry to the directory.
Definition: LDAPAsynConnection.cpp:185
TlsOptions getTlsOptions() const
Definition: LDAPAsynConnection.cpp:288
const std::string & getHost() const
Definition: LDAPAsynConnection.cpp:297
LDAPMessageQueue * compare(const std::string &dn, const LDAPAttribute &attr, const LDAPConstraints *cons=0)
Perform the COMPARE-operation on an attribute.
Definition: LDAPAsynConnection.cpp:170
static const int SEARCH_ONE
Constant for the Search-Operation to indicate a One-Level Search.
Definition: LDAPAsynConnection.h:57
LDAPMessageQueue * del(const std::string &dn, const LDAPConstraints *cons=0)
Delete an entry from the directory.
Definition: LDAPAsynConnection.cpp:156
LDAPAsynConnection * referralConnect(const LDAPUrlList &urls, LDAPUrlList::const_iterator &usedUrl, const LDAPConstraints *cons) const
This method is used internally for automatic referral chasing.
Definition: LDAPAsynConnection.cpp:307
LDAPMessageQueue * extOperation(const std::string &oid, const std::string &value="", const LDAPConstraints *cons=0)
Perform a LDAP extended Operation.
Definition: LDAPAsynConnection.cpp:233
int getPort() const
Definition: LDAPAsynConnection.cpp:302
void start_tls()
Start TLS on this connection.
Definition: LDAPAsynConnection.cpp:79
LDAPMessageQueue * search(const std::string &base="", int scope=0, const std::string &filter="objectClass=*", const StringList &attrs=StringList(), bool attrsOnly=false, const LDAPConstraints *cons=0)
Performing a search on a directory tree.
Definition: LDAPAsynConnection.cpp:136
LDAPMessageQueue * saslInteractiveBind(const std::string &mech, int flags=0, SaslInteractionHandler *sih=0, const LDAPConstraints *cons=0)
Definition: LDAPAsynConnection.cpp:117
void init(const std::string &hostname, int port)
Initializes a connection to a server.
Definition: LDAPAsynConnection.cpp:48
Represents the name an value(s) of an Attribute.
Definition: LDAPAttribute.h:21
This class represents some options that can be set for a LDAPConnection operation.
Definition: LDAPConstraints.h:27
This class is used to store every kind of LDAP Entry.
Definition: LDAPEntry.h:19
This class is created for the asynchronous LDAP-operations.
Definition: LDAPMessageQueue.h:27
This container class is used to store multiple LDAPModification-objects.
Definition: LDAPModList.h:18
This class is used to analyze and store LDAP-Urls as returned by a LDAP-Server as Referrals and Searc...
Definition: LDAPUrl.h:22
This container class is used to store multiple LDAPUrl-objects.
Definition: LDAPUrlList.h:16
ListType::const_iterator const_iterator
Definition: LDAPUrlList.h:20
Definition: SaslInteractionHandler.h:13
Container class to store multiple string-objects.
Definition: StringList.h:15
Class to access the global (and connection specific) TLS Settings To access the global TLS Settings j...
Definition: TlsOptions.h:21