ldapsdk 0.0.1
LDAPUrl.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_URL_H
9#define LDAP_URL_H
10
11#include <StringList.h>
12
22class LDAPUrl{
23
24 public :
29 LDAPUrl(const std::string &url="");
30
34 ~LDAPUrl();
35
40 int getPort() const;
41
46 void setPort(int port);
47
51 int getScope() const;
52
57 void setScope(const std::string& scope);
58
62 const std::string& getURLString() const;
63
68 void setURLString(const std::string &url);
69
73 const std::string& getHost() const;
74
79 void setHost( const std::string &host);
80
84 const std::string& getScheme() const;
85
91 void setScheme( const std::string &scheme );
92
96 const std::string& getDN() const;
97
102 void setDN( const std::string &dn);
103
104
108 const std::string& getFilter() const;
109
114 void setFilter( const std::string &filter);
115
119 const StringList& getAttrs() const;
120
125 void setAttrs( const StringList &attrs);
126 void setExtensions( const StringList &ext);
127 const StringList& getExtensions() const;
128
134 void percentDecode( const std::string& src, std::string& dest );
135
142 std::string& percentEncode( const std::string& src,
143 std::string& dest,
144 int flags=0 ) const;
145
146 protected :
154 void parseUrl();
155
162 void components2Url() const;
163
164 void string2list(const std::string &src, StringList& sl,
165 bool percentDecode=false);
166
167 protected :
168 mutable bool regenerate;
171 std::string m_Host;
172 std::string m_DN;
173 std::string m_Filter;
176 mutable std::string m_urlString;
177 std::string m_Scheme;
179};
180
182struct code2string_s {
183 int code;
184 const char* string;
185};
187
189 public :
190 LDAPUrlException(int code, const std::string &msg="" );
191
192 int getCode() const;
193 const std::string getErrorMessage() const;
194 const std::string getAdditionalInfo() const;
195
196 static const int INVALID_SCHEME = 1;
197 static const int INVALID_PORT = 2;
198 static const int INVALID_SCOPE = 3;
199 static const int INVALID_URL = 4;
200 static const int URL_DECODING_ERROR = 5;
201 static const code2string_s code2string[];
202
203 private:
204 int m_code;
205 std::string m_addMsg;
206};
207#endif //LDAP_URL_H
Definition: LDAPUrl.h:188
const std::string getErrorMessage() const
Definition: LDAPUrl.cpp:509
static const int INVALID_URL
Definition: LDAPUrl.h:199
static const int INVALID_SCHEME
Definition: LDAPUrl.h:196
LDAPUrlException(int code, const std::string &msg="")
Definition: LDAPUrl.cpp:496
static const int URL_DECODING_ERROR
Definition: LDAPUrl.h:200
const std::string getAdditionalInfo() const
Definition: LDAPUrl.cpp:504
static const code2string_s code2string[]
Definition: LDAPUrl.h:201
static const int INVALID_PORT
Definition: LDAPUrl.h:197
static const int INVALID_SCOPE
Definition: LDAPUrl.h:198
int getCode() const
Definition: LDAPUrl.cpp:499
This class is used to analyze and store LDAP-Urls as returned by a LDAP-Server as Referrals and Searc...
Definition: LDAPUrl.h:22
std::string m_Filter
Definition: LDAPUrl.h:173
void setAttrs(const StringList &attrs)
Set the Attributes part of the URL.
Definition: LDAPUrl.cpp:128
std::string m_Scheme
Definition: LDAPUrl.h:177
const StringList & getExtensions() const
Definition: LDAPUrl.cpp:134
void setFilter(const std::string &filter)
Set the Filter part of the URL.
Definition: LDAPUrl.cpp:118
bool regenerate
Definition: LDAPUrl.h:168
void setPort(int port)
Set the port value of the URL.
Definition: LDAPUrl.cpp:49
void setScope(const std::string &scope)
Set the Scope part of the URL.
Definition: LDAPUrl.cpp:60
const std::string & getScheme() const
Definition: LDAPUrl.cpp:145
StringList m_Extensions
Definition: LDAPUrl.h:175
int getScope() const
Definition: LDAPUrl.cpp:55
void string2list(const std::string &src, StringList &sl, bool percentDecode=false)
Definition: LDAPUrl.cpp:321
void setDN(const std::string &dn)
Set the DN part of the URL.
Definition: LDAPUrl.cpp:108
StringList m_Attrs
Definition: LDAPUrl.h:174
std::string m_DN
Definition: LDAPUrl.h:172
int m_Scope
Definition: LDAPUrl.h:170
void setExtensions(const StringList &ext)
Definition: LDAPUrl.cpp:139
mode
Definition: LDAPUrl.h:178
@ base
Definition: LDAPUrl.h:178
@ extensions
Definition: LDAPUrl.h:178
@ filter
Definition: LDAPUrl.h:178
@ attrs
Definition: LDAPUrl.h:178
@ scope
Definition: LDAPUrl.h:178
void parseUrl()
Split the url string that is associated with this Object into it components.
Definition: LDAPUrl.cpp:163
void components2Url() const
Generate an URL string from the components that were set with the various set...() methods (this func...
Definition: LDAPUrl.cpp:341
LDAPUrl(const std::string &url="")
Create a new object from a string that contains a LDAP-Url.
Definition: LDAPUrl.cpp:22
int getPort() const
Definition: LDAPUrl.cpp:44
const StringList & getAttrs() const
Definition: LDAPUrl.cpp:124
const std::string & getURLString() const
Definition: LDAPUrl.cpp:75
std::string & percentEncode(const std::string &src, std::string &dest, int flags=0) const
Percent-encoded a string.
Definition: LDAPUrl.cpp:418
int m_Port
Definition: LDAPUrl.h:169
void setScheme(const std::string &scheme)
Set the Protocol Scheme of the URL.
Definition: LDAPUrl.cpp:150
std::string m_Host
Definition: LDAPUrl.h:171
void percentDecode(const std::string &src, std::string &dest)
Percent-decode a string.
Definition: LDAPUrl.cpp:295
const std::string & getHost() const
Definition: LDAPUrl.cpp:93
std::string m_urlString
Definition: LDAPUrl.h:176
void setURLString(const std::string &url)
Set the URL member attribute.
Definition: LDAPUrl.cpp:84
void setHost(const std::string &host)
Set the Host part of the URL.
Definition: LDAPUrl.cpp:98
const std::string & getDN() const
Definition: LDAPUrl.cpp:104
const std::string & getFilter() const
Definition: LDAPUrl.cpp:114
~LDAPUrl()
Destructor.
Definition: LDAPUrl.cpp:38
Container class to store multiple string-objects.
Definition: StringList.h:15